抽象类:
总结特点:
1、关键字 abstract 。 2、抽象类不能被实例化。 3、如果一个类中有抽象方法,那么该类必须被声明为抽象类。 4、抽象方法只是声明了其调用方式(参数),不能定义其具体的功能实现。就是不能有方法体{}的内容。 5、继承抽象类关键字:extends ,继承抽象类的子类,子类必须定义父类中所有的抽象方法,并且这些方法的控制权限必须大于等于(>=)父类的抽象方法,控制权限大小(public>protect>private) |
示例代码:
<?php abstract class AbstractClass { // 强制要求子类定义这些方法 abstract protected function getValue(); //不能有方法实现的方法体 abstract protected function prefixValue($prefix); // 普通方法(非抽象方法) public function printOut() { print $this->getValue() . "\n"; } } class ConcreteClass1 extends AbstractClass { protected function getValue() {//因为抽象类控制权限是protect,所以子类控制权限可以是protect、public,不能是private return "ConcreteClass1"; } public function prefixValue($prefix) { return "{$prefix}ConcreteClass1"; } } $class1 = new ConcreteClass1; $class1->printOut(); echo $class1->prefixValue('FOO_') ."\n";//FOO_ConcreteClass1 ?> |