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二分法在IP地址查询中的应用
Aug 12 PHP
删除数组元素实用的PHP数组函数
Aug 18 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
Jul 19 PHP
php模拟js函数unescape的函数代码
Oct 20 PHP
php删除数组元素示例分享
Feb 17 PHP
php制作动态随机验证码
Feb 12 PHP
Linux系统递归生成目录中文件的md5的方法
Jun 29 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
Sep 23 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
Oct 26 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
在 PHP 和 Laravel 中使用 Traits的方法
Nov 13 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
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
2012/12/28 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
Javascript 学习笔记 错误处理
2009/07/30 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
五步轻松实现zTree的使用
2017/11/01 Javascript
Bootstrap Table列宽拖动的方法
2018/08/15 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
JavaScript forEach中return失效问题解决方案
2020/06/01 Javascript
[01:04:09]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第二场 2月2日
2021/03/11 DOTA
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
numpy 声明空数组详解
2019/12/05 Python
Python编译成.so文件进行加密后调用的实现
2019/12/23 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
用CSS3实现瀑布流布局的示例代码
2017/11/10 HTML / CSS
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
女装和独特珠宝:Sundance Catalog
2018/09/19 全球购物
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
导师评语大全
2014/04/26 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
合作协议书范文
2014/08/20 职场文书
安全演讲稿开场白
2014/08/25 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
免职证明样本
2014/10/23 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
顶岗实习协议书
2015/01/29 职场文书
二手房购房意向书
2015/05/09 职场文书
个人借条范本
2015/05/25 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书