PHP中抽象类与接口

接口:

1、通过Interface来定义一个接口,通过关键字implements来使用一个接口,也可以通过关键字extends继承,接口中不可以声明变量(包括静态变量),但是可以声明常量,可以声明方法,方法都必须是public。
2、必须实现接口中定义的所用的方法,如果实现多个接口,可以用逗号来分割多个接口的名称。
3、接口中可以定义常量,接口常量和类常量的使用完全相同,他们都是定值,不能被子类或子接口修改。

抽象类:

1、php5支持抽象类和抽象方法,使用关键字abstract来声明一个抽象类或者方法。
2、抽象类不能直接被实例化,必须先继承该抽象类,然后再实例化子类,任何一个类,如果他里面至少有一个方法是被声明为抽象的,那这个类就必须被声明为抽象的,如果类方法被声明为抽象的,那么其中就不能包括具体的功能实现(通过子类继承来实现)。
3、继承一个抽象类的时候,子类必须实现抽象类中的所有的抽象方法,另外,这些方法的可见性必须和抽象类中一样(或更轻松),如果抽象类中的某个抽象方法被声明为proteected,那么子类中实现的方法应该声明为pritected或者public。

什么时候用抽象类什么时候用接口:

1、如果要建一个类模型,这个模型将由一些紧密相关的对象采用,使用抽象类。如果模型将由不太相关的对象采用,用接口。
2、如果一个具体class将从多个来源继承行为,用接口。php类可以继承多个接口,但是不能继承多个抽象类。
3、如果所有的类都要共享一个公共的行为实现,用抽象类,并在其中实现该行为。先用子类继承一个抽象类,继承后的子类能够实现原先的行为。

博客全新改版-全新开放

虽然博客已经弄了快一年时间了,但是模板总是不如我意;

今天有点时间将原来的程序直接废掉。

全新架构,全新开始;

最新文章

最近回复

分类

归档

其它