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 strtotime函数详解
Dec 18 PHP
php 需要掌握的东西 不做浮躁的人
Dec 28 PHP
在PHP中使用curl_init函数的说明
Nov 02 PHP
php设计模式 Adapter(适配器模式)
Jun 26 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
Mar 23 PHP
ThinkPHP连接Oracle数据库
Apr 22 PHP
php使用正则表达式去掉html中的注释方法
Nov 03 PHP
php中Ioc(控制反转)和Di(依赖注入)
May 07 PHP
PHP CURL中传递cookie的方法步骤
May 09 PHP
windows 2008r2+php5.6.28环境搭建详细过程
Jun 18 PHP
php文件上传原理与实现方法详解
Dec 20 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
海贼王:最美的悬赏令!
2020/03/02 日漫
用PHP开发GUI
2006/10/09 PHP
php smarty函数扩展
2010/03/15 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
php表单处理操作
2017/11/16 PHP
window.showModalDialog使用手册
2007/01/11 Javascript
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
JS是按值传递还是按引用传递
2015/01/30 Javascript
跟我学习javascript的浮点数精度
2015/11/16 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
使用jQuery卸载全部事件的思路详解
2017/04/03 jQuery
微信小程序 首页制作简单实例
2017/04/07 Javascript
VUE实现一个分页组件的示例
2017/09/13 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
2018/10/17 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
用Python写一个自动木马程序
2019/09/17 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
html5触摸事件判断滑动方向的实现
2018/06/05 HTML / CSS
this关键字的含义
2015/04/08 面试题
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
二人合伙经营协议书
2014/09/13 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
海洋天堂观后感
2015/06/05 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
Java界面编程实现界面跳转
2022/06/16 Java/Android