PHP面向对象程序设计继承用法简单示例


Posted in PHP onDecember 28, 2018

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
php 信息采集程序代码
Mar 17 PHP
PHP原生模板引擎 最简单的模板引擎
Apr 25 PHP
thinkphp控制器调度使用示例
Feb 24 PHP
php多维数组去掉重复值示例分享
Mar 02 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
thinkphp数据查询和遍历数组实例
Nov 28 PHP
ThinkPHP文件缓存类代码分享
Apr 22 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
php实现批量上传数据到数据库(.csv格式)的案例
Jun 18 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
PHP实现的数据对象映射模式详解
Mar 20 PHP
php中数组最简单的使用方法
Dec 27 PHP
PHP抽象类基本用法示例
Dec 28 #PHP
php PDO属性设置与操作方法分析
Dec 27 #PHP
php实现的PDO异常处理操作分析
Dec 27 #PHP
CI框架网页缓存简单用法分析
Dec 26 #PHP
CI框架附属类用法分析
Dec 26 #PHP
Yii2.0 RESTful API 基础配置教程详解
Dec 26 #PHP
CI框架实现创建自定义类库的方法
Dec 25 #PHP
You might like
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
表单验证的完整应用案例探讨
2013/03/29 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
jquery中trigger()无法触发hover事件的解决方法
2015/05/07 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
JS实现的合并多个数组去重算法示例
2018/04/11 Javascript
vue.js父子组件通信动态绑定的实例
2018/09/28 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
2020/04/21 Javascript
js实现微信聊天效果
2020/08/09 Javascript
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
Python实现对比不同字体中的同一字符的显示效果
2015/04/23 Python
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
Python实现队列的方法示例小结【数组,链表】
2020/02/22 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
英国高街电视:High Street TV
2018/05/22 全球购物
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
人力资源部门的主要职能
2014/02/22 职场文书
计划生育宣传标语
2014/06/21 职场文书
反腐倡廉标语
2014/06/24 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
导游词之襄阳古城
2019/09/27 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server