PHP面向对象程序设计继承用法简单示例
作者:徐三少北 发布时间:2023-11-22 08:09:42
标签:PHP,面向对象,继承
本文实例讲述了PHP面向对象程序设计继承用法。分享给大家供大家参考,具体如下:
<?php
//继承是子类(派生类)从父类(基类,超类)继承属性和方法。
//子类也可以有自己的属性和方法。
//一个父类可以被多个子类继承。
//如果想修改父类的方法,只能在子类里重写这个方法,这也是多态的体现。
//用if($obj instanceof SomeClass){}来检查一个对象是否属于一个类。
//如果$name是protected,private访问权限,那么将不能在类外被直接访问。
//如果$name是private访问权限,那么将只能在自身类里访问。
//如果$name是protected访问权限,可以自身类里访问,也可以在子类里访问。
//__construct()是类的构造函数,在创建对象实例时,自动访问该函数,子类也有自己的构造函数。
//子类没有构造函数时,在创建对象时,会调用父类的构造函数。
//子类有构造函数时,不用在调用父类的构造函数,除非有parent显式调用时,才去调用父类的构造函数。
//程序结束时,或者用unset()对象时,会调用析构函数。
//如果类里定义了final的方法,那么此方法将不能被子类重写。
//如果类声明了final,那么此类不能被继承。
//作为惯例,私有的变量名通常以一个下划线开始。
//如果一个类的方法只能被它自己调用,那么可以设置为受保护的或者私有的。
//$this引用当前对象的实例,self被用作当前类的一个引用。
//静态属性和类常数只能用类名、parent、self来访问
//函数名不区分大小写,变量区分大小写。
class Employees{
protected $name = null;
public static $count = 0;
function __construct($nameStr){
$this->name = $nameStr;
echo "<p>$this->name : ",self::$count," : parent : __construct</p>";
}
function work(){
echo "<p>$this->name is working</p>";
}
function __destruct(){
echo "<p>parent unset $this->name</p>";
}
}
class Managers extends Employees{
private $pos = null;
function __construct($p,$nameStr){
parent::$count++;
parent::__construct($nameStr);
$this->pos = $p;
echo "<p>$this->name , $this->pos : self : __construct</p>";
}
function assignJob(){
echo "<p>$this->name assign jobs</p>";
}
function getName(){
return $this->name;
}
function __destruct(){
echo "<p>self unset $this->name</p>";
}
}
class Programmers extends Employees{
function code(){
echo "<p>$this->name is coding</p>";
}
function getName(){
return $this->name;
}
}
$e1 = new Employees('e1');
$e2 = new MAnagers(2,'e2');
$e3 = new Programmers('e3');
$e1->work();
$e2->work();
$e3->work();
$e2->assignJob();
$e3->Code();
echo "<p>{$e3->getName()}</p>";
//echo "<p>$e1->name</p>";
if($e2 instanceof Employees){
echo "<p>ok</p>";
}else{
echo "<p>no</p>";
}
unset($e1,$e2,$e3);
运行结果:
e1 : 0 : parent : __construct
e2 : 1 : parent : __construct
e2 , 2 : self : __construct
e3 : 1 : parent : __construct
e1 is working
e2 is working
e3 is working
e2 assign jobs
e3 is coding
e3
ok
parent unset e1
self unset e2
parent unset e3
希望本文所述对大家PHP程序设计有所帮助。
来源:https://blog.csdn.net/uvyoaa/article/details/82555475


猜你喜欢
- 爬虫数据保存到mongoDB的方法:import pymongo# 首先需要注意,mongodb数据库存储的类型是以键值
- 昨天写了一段用来做分层随机抽样的代码,很粗糙,不过用公司的2万名导购名单试了一下,结果感人,我觉得此刻的我已经要上天了,哈哈哈哈哈哈代码如下
- 什么是跨域跨域是浏览器的专用概念,指js代码访问自己来源站点之外的站点。比如A站点网页中的js代码,请求了B站点的数据,就是跨域。A和B要想
- 首先画出流程图,流程图与现实代码有出入,因为刚开始画流程图的时候,有些东西没考虑进去,后来写着写着就慢慢能想起来并实现了。另有一点经验推荐给
- 目录开发环境主要文件:main.pyapp_main_window.pyTips多控件可以存在list中QApplication与QWidg
- 前段时间项目中使用到Mysql的FIND_IN_SET函数,感觉挺好用的。过一段时间,老大找到我说,这个需要改为IN,哈哈,只能改了,原因会
- 第一列按照goodsid局部分组,然后在分组后的记录中按照audittime升序排序得到序号,从而显示某商品得第几次变迁。 第二列是取该商品
- 1,GallerificGalleriffic 是使用 Mike Alsup 的 jQuery Cycle plugin 创建的图片展示效果
- String slctpsql="select id ,"+uid+","+ddd+",&
- 先声明一下,这是本人在某个项目中用到的,本人自己写的,如有雷同纯属巧合。同时也欢迎高人指正。这种星级的投票效果很常见,但是目前线上大多都是通
- CSS圆角的现实一直是大家所热衷的话题,我们进行CSS布局一直强调语义,强调文档的结构。圆角作为页面的外面表现,应该分离到CSS文件中,可以
- 加速运动,即一个物体运动时速度越来越快;减速运动,即一个物体运动时速度越来越慢。现在用Javascript来模拟这两个效果,原理就是用set
- 如下所示:<span style="font-size:18px;"># -*- coding:utf-8
- Numpy中repeat函数使用Numpy是Python强大的数学计算库,和Scipy一起构建起Python科学计算生态。在本节下面我们重点
- Fuko Masked 是 Kaloyan Tsvetkov 的一个小型PHP库,用于通过用编辑后的元素替换列入黑名单的元素来屏蔽敏感数据。
- 举例如下,一个服务器端的form 代码自动被解释成客户端代码:服务器端代码: &l
- SQL Server有几个版本都在使用中——4.2, 6.0, 6.5, 7.0, 2000,以及2
- vue控制mock在开发环境使用,在生产环境禁用说下原因mock拦截所有的axios请求,根据请求,做出相应的响应。平时前后端分离开发,我们
- 前段时间在生活中偶尔需要对某些文件进行重命名,而且是随机名字,刚开始是手动重命名然后在键盘上胡乱打一些字母数字,时间长了发现也挺麻烦的,于是
- 本文主要跟大家分享在类unix操作系统下supervisor的使用以及一些关于进程的知识一、问题背景1、背景如何才能让一个进程摆脱终端,获得