抽象类(abstract class):
1)包含至少一个抽象方法(abstract function)的类。换言之,任何类只有一个或以上的抽象方法,这个类就是抽象类。
2)抽象类中可以有具体方法,可以有成员变量。
3)抽象类不能实例化。都叫抽象的,还咋实例化。2333.
4)用法:
abstract class Father{
protected(或public修饰 不能是private的 不然子类也获取不到) abstract function func1();
}
实现继承到的抽象方法时
class Son extends Father{//和普通类一样,一个子类也只能继承一个抽象类
public (去掉abstract关键字) function func1{
echo '必须实现所有的抽象方法';
}
}
接口(interface):
1)接口中全部是抽象方法。(因为要用来给子类实现。所以都要是public的。)
2)接口中不能有具体方法,且只能有成员常量。
3)一个类可以实现多个接口。
3)用法: implements关键字后实现多个接口用逗号隔开。
class Son implements InterfaceA,InterfaceB,InterfaceC {
//1.实现这三个接口的所有抽象方法,2.要与抽象方法的参数完全一致 3.接口的常量不能被覆盖。
}