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的面向对象编程
Oct 09 PHP
BBS(php &amp; mysql)完整版(一)
Oct 09 PHP
php下通过POST还是GET来传值
Jun 05 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
php中curl和file_get_content的区别
May 10 PHP
在PHP中使用X-SendFile头让文件下载更快
Jun 01 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
Mar 12 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
May 12 PHP
PHP比较运算符的详细介绍
Sep 29 PHP
php检查页面是否被百度收录
Oct 28 PHP
php下载文件超时时间的设置方法
Oct 06 PHP
使用Zookeeper分布式部署PHP应用程序
Mar 15 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
第十节--抽象方法和抽象类
2006/11/16 PHP
一篇入门的php Class 文章
2007/04/04 PHP
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
2013/11/07 PHP
PHP+MySQL删除操作实例
2015/01/21 PHP
asp 的 分词实现代码
2007/05/24 Javascript
javascript 循环调用示例介绍
2013/11/20 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
JS中的phototype详解
2017/02/04 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
跟老齐学Python之有点简约的元组
2014/09/24 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
详解Python中is和==的区别
2019/03/21 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
上海中网科技笔试题
2012/02/19 面试题
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
我的大学生活职业生涯规划
2014/01/02 职场文书
黄河的主人教学反思
2014/02/07 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
大学社团活动总结
2014/04/26 职场文书
英文演讲稿
2014/05/15 职场文书
商场促销活动策划方案
2014/08/18 职场文书
2015年教师节广播稿
2015/08/19 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python