PHP面向对象特性-多态
2017-07-24 16:16
363 查看
1、抽象类和方法
创建一个抽象类 在class前面加上abstract。
抽象类不能被实例化。
只要类里面有一个抽象方法,那么这个类必须是抽象类,类前必须加上abstract。
2、接口
特殊的抽象类。
到底应该用抽象类还是接口呢?
如果你要继承多个类的方法规范,那么就用接口就好了。
如果你要共享一个方法体内容,就用抽象类。
类不能实现多继承,只支持单继承,但是接口可以。
作用:规范他们的子类,以达到一致目的。
3、多态
字面意思:多种形态。
一个动作由不同的人去执行产生不同的效果
一个人通过不同的状态去执行同一个动作形成的不同的动作。
多态的原理:就是类都写好了,不要去修改它,只要在类外调用参数修改。而最后的结果也会得到更改,这就是类的多态。
创建一个抽象类 在class前面加上abstract。
抽象类不能被实例化。
只要类里面有一个抽象方法,那么这个类必须是抽象类,类前必须加上abstract。
abstract class Computer{ //在抽象类里创建一个普通方法 //抽象方法不能够实现方法体的内容 abstract public function _run(); public function _run2(){ echo '我是父类的普通方法'; } } //抽象类是用来给子类来继承的,实现一种资源和规范的共享。 class NoteComputer extends Computer{ //抽象类里的抽象方法,子类必须重写,不然会报错。 //抽象类里的普通方法不需要重写,子类会直接继承。 public function _run(){ echo '我是子类的方法'; } } $notecomputer = new NoteComputer(); $notecomputer->_run2();
2、接口
特殊的抽象类。
到底应该用抽象类还是接口呢?
如果你要继承多个类的方法规范,那么就用接口就好了。
如果你要共享一个方法体内容,就用抽象类。
类不能实现多继承,只支持单继承,但是接口可以。
作用:规范他们的子类,以达到一致目的。
interface Computer{ //成员字段必须是常量 const NAME = '联想 '; //接口里的所有方法都是抽象方法,不能够写方法体 public function _run(); public function _run2(); } interface Computer2{ public function _run3(); } //子类继承接口的说法,叫做实现,接口可以多实现。 class NoteCompuyer implements Computer{ public function _run(){ echo '我重写了run'; } public function _run2(){ echo '我重写了run2'; } public function _run3(){ } }
3、多态
字面意思:多种形态。
一个动作由不同的人去执行产生不同的效果
一个人通过不同的状态去执行同一个动作形成的不同的动作。
多态的原理:就是类都写好了,不要去修改它,只要在类外调用参数修改。而最后的结果也会得到更改,这就是类的多态。
interface Computer{ public function version();//表示用什么电脑 public function work();//电脑如何运行 } class NoteComputer implements Computer{ public function version(){ echo '笔记本'; } public function work(){ echo '可以便携式运行Win7'; } } class DesktopComputer implements Computer{ public function version(){ echo '台式机'; } public function work(){ echo '在工作站运行XP'; } } //创建一个用户 class Person{ //创建一个方法来接受电脑 //将他们的对象传进来 public function _run($type){ $type->version(); $type->work(); } } //有 一个接口 两个类 $notecomputer = new NoteComputer(); $desktopcomputer = new DesktopComputer(); $person = new Person(); //通过传不同的参数来得到不同的结果 $person->_run($notecomputer); //结果:笔记本可以便携式运行Win7 $person->_run($desktopcomputer); //结果:台式机在工作站运行XP
相关文章推荐
- 黑马程序员----面向对象设计的封装、继承、多态特性
- 深入PHP面向对象、模式与实践——高级特性(1)
- 1.面向对象三大特性,封装,继承,多态
- Java面向对象特性--多态
- 【java基础】--(1)面向对象特性之多态
- Java面向对象四大特性之多态
- 面向对象语言特性之多态
- PHP面向对象特性
- 面向对象三大特性之多态(polymorphism)
- 初识PHP(三)面向对象特性
- 面向对象非常非常重要的一个特性“多态”的学习笔记
- PHP面向对象高级特性 PSR-0规范
- 面向对象三大特性之一 多态
- 本文是笔者根据数据库编程经验,利用C++语言的模板、继承、授权、多态等面向对象特性,借鉴命令模式,实现了对象在关系数据中的存储,降低应用系统与数据库之间的耦合,提高开发效率。
- PHP面向对象特性-封装
- 面向对象语言三大特性之多态
- PHP面向对象学习之二:深入了解面向对象高级特性
- php的面向对象相关特性
- 黑马程序员—java面向对象总结(3)—面向对象继承、多态特性
- java面向对象四大特性-多态