PHP接⼝(interface)和抽象类(abstract)的定义概念以及
使⽤场景
接⼝是什么 可以做什么 为什么需要接⼝?
PHP是与⼤多数⾯向对象的编程语⾔⼀样,不⽀持多重继承,也就是说每个类只能继承⼀个⽗类。实际开发中会有多重复⽤的场景,PHP 为了解决这个问题,引⼊了接⼝,规定实现该接⼝的类必须实现该类中的所有⽅法。
就像你看上了⼀个离婚的带孩⼦(⼀个或多个)的⼥⼈,她说想和我结婚可以,但是条件呢就是必须抚养我的孩⼦。⾄于怎么抚养那就是你的事了,呵护有加可以,暴打虐待也可以。。。
简单讲就是 接⼝就是类的模板,⼀个类的规定,继承了该类必须实现该类中所有的⽅法,具体实现⽅法不管,那是你的事了。接⼝就是⼤领导,指明⽅向,⼦类必须完成它规定的⽅法。
接⼝定义和使⽤规范:
定义:接⼝是抽象⽅法和静态常量的集合。接⼝是⼀种特殊的抽象类,这种抽象类中只包含抽象⽅法和静态常量。
接⼝中的抽象⽅法只能是public的,默认public权限。Abstract和final修饰符不能修饰接⼝中的抽象⽅法。
interface + 接⼝名 { ... }
interface User
{
//public $name;//报错,只能包含抽象⽅法和静态常量。
const GROUP = 12;//静态常量
//public function t(){};//报错,只能包含抽象⽅法和静态常量。
//private function t(){};//报错,接⼝中的抽象⽅法只能是public的,默认也是public权限。
//abstract function t(){};//报错,abstract和final修饰符也不能修饰接⼝中的抽象⽅法。
//仅下⾯两种定义⽅法可以
public function right1();
function right2();
}
接⼝的应⽤场景:
当多个对象不能抽象出共同的⽗类,但是有共同的⾏为,这种情况下就需要将这种⾏为封装成接⼝。⽐如登记这种⾏为:⼈,汽车,房⼦都需要登记,但是这三类没有共同的特征,所以要将登记这⼀⾏为封装成⼀个接⼝。再如:电脑的USB接⼝使⽤,如果符合USB接⼝规范,就可以插进去,并且读取或写⼊数据,但是 ⼿机,U盘,MP3他们不是同⼀种类型,所以要将USB接⼝单独封装出来。
知识延申:
什么是抽象接⼝? 抽象类?
定义为抽象的类不能被实例化。任何⼀个类,如果它⾥⾯⾄少有⼀个⽅法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的⽅法只是声明了其调⽤⽅式,不能定义其具体的功能实现。
继承⼀个抽象类的时候,⼦类必须定义为⽗类中的所有的抽象⽅法;
另外这些⽅法的访问控制必须和⽗类中⼀样。抽象类的使用
关键字:abstract class + 类名{ ... }
类和接⼝的关系是什么 ?
是⼀种类似于类的结构
接⼝和抽象类的关系?
通常,在⼦类和⽗类之间存在逻辑上的层次结构是应当使⽤抽象类,⽽在希望⽀持差别较⼤的两个或多个对象之间的特定交互⾏为时,就应当使⽤接⼝。
接⼝如何使⽤ ?
抽象类和接⼝的区别?
接⼝是⼀种特殊的抽象类
区别关键字
(定义)
关键字(使
⽤)
修饰符类
抽象类abstract extends有有Private,protected,public⼀
接⼝Interface implements没
只能是public多
相同点:抽象⽅法与接⼝的函数不能写任何东西,两个⼤括号也不能写,Function + funname($val);  就可以了 ,没有参数则为空

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。