PHP面向对象特性-多态
来源:互联网 发布:智慧足迹数据 编辑:程序博客网 时间:2024/06/05 14:09
1、抽象类和方法
创建一个抽象类 在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
阅读全文
0 0
- PHP面向对象特性-多态
- PHP面向对象特性
- PHP面向对象----继承特性
- PHP面向对象相关特性
- PHP面向对象高级特性
- PHP面向对象特性-封装
- PHP面向对象特性-继承
- 面向对象特性-多态
- php的面向对象相关特性
- PHP---面向对象的3个特性
- PHP面向对象继承特性的笔记
- 面向对象的特性:多态
- Java面向对象特性--多态
- PHP面向对象编程三大特性之继承特性
- php 面向对象“多态”
- PHP5新特性: 更加面向对象化的PHP
- PHP5新特性: 更加面向对象化的PHP
- PHP面向对象的三大特性之封装性
- RPC框架技术初窥
- 【easyui】禁用元素
- List转换成Tree
- CNN中特征映射层(S2)有特征提取层(C3)特征映射是怎么作用的
- Redis协议
- PHP面向对象特性-多态
- Java_基础—字符流FileWriter
- FZU 2275 Game【博弈】
- adb不能用
- PHP学习记录
- 桥设备及端口的开启和关闭(四)
- 关于dp小结(一)
- 减少Servlet的一些方法
- Fibonacci博弈的证明