一、Abstract Class 与 Interface 的构造
抽象类 Abstract Class
<?php
abstract class A {
public $attribute;
abstract public function method1();
abstract public function method2();
public function method3() {
//... code ...
}
}
?>
接口 Interface
<?php
interface B {
public function method4();
public function method5();
}
?>
1)Abstract Class 中可以有抽象函数(method1,method2),也可以有具体的函数实现(method3),而 Interface 中只能定义函数而不能有实现(method4,method5)。显然,如果一个抽象类中的函数全部是抽象函数,那么这个抽象类就退化成了接口。
2)PHP 和 Java 一样,一个 Class 只能继承一个 Abstract Class,但可以实现多个 Interface。这即是所谓的单一继承体系,也就是子类别只能继承一个父类别;一个父类别则可以被多个子类别所继承。
3)在 Abstract Class 中可以声明属性成员变量(attribute),而 Interface 不可以。