2019独角兽企业重金招聘Python工程师标准>>>

关于PHP面向对象的一点理解,记录一下。

1、组合和继承

继承会将父类的代码全部继承下来,组合仅仅将外部可调用的变量和方法进行组装,代码量会减少很多,但是无法使用protected的变量和方法。底层代码多用组合,顶层或者业务层多用继承。

class person{public $name = 'Tom';public $gender;static $money = 10000;public function __construct(){echo 'This is father!', PHP_EOL;}public function say(){echo $this->name,' is ',$this->gender, PHP_EOL;}
}class family extends person{//继承public $name;public $gender;public $age;static $money = 10000;public function __construct(){parent::__construct();echo "This is son!", PHP_EOL;}public function say(){parent::say();echo $this->name,' is ',$this->gender,' and is ',$this->age, PHP_EOL;}public function cry(){echo parent::$money, PHP_EOL;echo self::$money, PHP_EOL;}
}
class family_another{//组合public $name;public $gender;public $person;function __construct(){$this->person = new car;$this->name = $this->person->name;$this->gender = $this->person->gender;}function say(){$this->person->say();}
}
$poor = new family();
$poor->name = 'Lee';
$poor->gender = 'female';
$poor->age = 25;
$poor->say();
$poor->cry();
$poor_another = new family_another();
$poor_another->say();

2、多态

多态性指一种通过多种状态或阶段描述相同对象的编程方式。在实际开发中,只要关心一个接口或基类的编程,而不必关心一个对象所属的具体类。

interface employee{public function working();
}
class teacher implements employee{public function working(){echo 'teaching',PHP_EOL;}
}
class coder implements employee{public function working(){echo 'coding',PHP_EOL;}
}
function print_object(employee $i){$i->working();
}
$a = new teacher();
$b = new coder();
print_object($a);
print_object($b);

转载于:https://my.oschina.net/wddqing/blog/126314

PHP面向对象之继承和多态相关推荐

  1. 面向对象、继承、多态、封装、匿名内部类的基本知识点复习总结

    1.面向对象 概述:一种编程思想,强调的谁来做事情,强调的是结果 面向对象的好处:1.更符合人类的思想习惯:做事情的时候先去get工具,get对象2.复杂的问题简单化3.执行者变成了指挥者 面向过程是 ...

  2. python继承和多态心得_python学习第十五天 -面向对象之继承和多态

    大家都知道面向对象的三大特性:封装,继承,多态.封装特性在上一章节已经讲解过.这一章节主要讲解继承和多态. 继承:当定义一个类的时候,可以从现有的类进行继承.那么新定义的类可以称为子类,被继承的现有的 ...

  3. JavaSE面向对象:继承、多态、Super、Object类、重写、static、final、静态成员、懒汉式、饿汉式、单例设计模式、初始化块、抽象类、抽象方法、接口

    感谢尚硅谷免费提供的视频 继承 ** 理解 ** 生活中的继承:子女继承了父母的财产或相貌或才华 java中的继承:一个类不用自己定义属性或方法,就已经具备了另一个类的属性和方法 把这种现象称为jav ...

  4. 【面向对象】继承和多态的弊端

    封装.继承和多态是面向对象的三大特性,却也并非没有弊端. 继承存在正确实践和不正确实践,其可能存在的弊端有: 脆弱的基类问题:对基类的修改会影响到它所有的子孙类. 臃肿的子类问题:如果"尽可 ...

  5. 黑马程序员_JAVA之面向对象(封装,继承和多态)

    ------- android培训.java培训.期待与您交流!---------- 面向对象 一.面向对象概述 定义: 面向对象(Object Oriented,OO)是软件开过过程中使用一种思维方 ...

  6. C++面向对象编程 -- 继承、多态和文件操作

    继承.多态和文件操作 继承 继承方式 继承中的对象模型 继承中的构造和析构 继承中同名成员的处理方式 继承同名静态成员处理方式 多继承语法 菱形继承 多态 多态的基本概念 动态多态满足的条件 多态的优 ...

  7. 【python面向对象】继承与多态(二)

    文章目录 内置可重写函数 __str__函数 __repr__函数 练习 运算符重载 定义 多继承 面向对象设计思想补充 里氏替换(继承后的重写) 迪米特法则(类与类交互的原则) 总结 内置可重写函数 ...

  8. 面向对象(继承,多态)

    二维数组的定义格式: 第一种:直接给定了每一个一维数组中数组长度 数据类型[][] 数组名称 = new 数据类型[m][n] 第二种:给定了多少个一维数组,长度动态给定 数据类型[][] 数组名称 ...

  9. python编程语言继承_Python 面向对象编程——继承和多态

    <基本定义> 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Ba ...

  10. [转] 面向对象编程 - 继承和多态

    在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Supe ...

最新文章

  1. 《虚拟化安全解决方案》一2.3 在Windows Server 2008上配置Microsoft Hyper-V
  2. 6.Java集成开发环境
  3. 百度笔试题:malloc/free与new/delete的区别
  4. Python:langdetect和langid检测语言类型
  5. 聊一聊ThreadLocal
  6. Android 功耗(3)---高通功耗问题分析方法
  7. python能够处理图像的第三方库_基于图像预处理的几个库
  8. layui外部引入_javascript 怎么去引用layui里面的方法
  9. cartographer探秘第五章之 Cartographer 所用到的 C++11 新特性
  10. CodeBlocks(17.12) 代码调试基础方法快捷方式
  11. python库参考_Python库参考手册(Python Library Reference)
  12. activiti工作流数据库表详细说明
  13. QTcreator Label控件显示乱码问题解决办法
  14. 角色游戏二(NPC对话)
  15. 别了,IE浏览器?微软正式宣布
  16. 饱和气压与温度的关系_饱和水蒸汽的压力与温度的关系介绍
  17. 伪随机函数 密码学_密码学与理论2:什么是伪随机
  18. 安装mysql后服务里面没有_安装mysql后没有看到服务怎么办?
  19. java计算机毕业设计供电公司安全生产考试系统源码+mysql数据库+系统+lw文档+部署
  20. React 中的受控组件和非受控组件的区别

热门文章

  1. 《深度学习Python实践》第17章——算法调参
  2. 剑指offer(28)—数组中出现次数超过一半的数字
  3. 函数 strncpy、strncat、strncmp、strrchr 的实现
  4. Android-Universal-Image-Loader学习笔记(4)--download
  5. mysql count视频教程_mysql count提高方法总结
  6. 2019年9月全国程序员工资统计,你处于什么位置?
  7. OpenGL ES总结(五)OpenGL ES中pipeLine机制
  8. Go基础-go语言的编码规范
  9. python查看系统句柄数量_查看Linux某个进程打开的文件句柄(file descriptor)数量...
  10. linq判断集合中相同元素个数_高中数学:集合与函数概念知识点汇总