要充分发挥抽象类的特点,就必须牢记一下规则。
- 某个类只要包含至少一个抽象方法就必须声明为抽象类。
- 声明为抽象的方法,在实现的时候必须包含相同的或者更低的访问级别。例如,如果某个方法在抽象类中的访问级别是受保护的,在继承类中它就必须是受保护的或者公共的,而不能是私有的。
- 不能使用new关键字创建抽象类的实例。
- 被声明为抽象的方法不能包含函数体。
- 如果将扩展的类也声明为抽象的,在扩展抽象类时,就可以不用实现所有的抽象方法。
在类的声明中使用 abstract 修饰符就可以将某个类声明为抽象的。
抽象类也有一些限制。pHp只支持从一个基类继承,而不支持从两个或者更多的抽象类继承。从两个或更多地基类继承的能力通常被称为多重继承,pHp在设计上是禁止这种功能的。原因在于,当两个或更多地类定义了具有相同原型且具有完整实现方法时,从多个类继承会导致不必要的复杂性。当发现需要从两个或更多抽象类继承时,可以将基类的方法拆开,然后使用接口达到相同的目的。