php 抽象类和接口类

PHP中抽象类和接口类都是特殊类,通常配合面向对象的多态性一起使用。

相同:

①两者都是抽象类,都不能实例化。

②只有接口类的实现类和抽象类的子类实现了 已经声明的 抽象方法才能被实例化。

不同:

①接口类实现的关键字是implements,而抽象类继承的关键字是extends。

②一个类可以实现多个接口类,但是只能继承一个抽象类。

③接口类的子类必须实现接口类声明的方法,但是抽象类的子类可以有选择性的实现,因为抽象类中可以定义非抽象的方法,子类在继承的时候对于非抽象的方法可以直接继承也可以覆盖,对于抽象方法可以选择实现或者留给其子类来实现,但是这个类必须被声明为抽象类。

④接口类只能定义常量,而抽象类可以定义其他的成员变量

⑤接口类的方法可以不加abstract 关键字,而抽象类中的抽象方法必须加上abstract 关键字声明为抽象方法。

⑥接口类的方法只能用public,而抽象类可以用public,protected,但是不能用private。

 

posted on 2017-04-18 15:19  顶级手法  阅读(137)  评论(0编辑  收藏  举报