定义抽象类使用abstract关键字,主要用于定义规范,其函数必须被继承的子类全部重载后才能实例化,重载不全会报错
abstract class AbClass{
abstract function a1();
abstract function a2();
}
class AbSonClass extends AbClass{
//全部重载父类方法
function a1(){
echo "抽象方法1";
}
function a2(){
echo "抽象方法2";
}
}
接口和抽象类非常相似,接口的引用,可以多引用,通过关键字implements 引用,全部为抽象方法,在引用它的子类里面也必须全部覆盖所有方法
interface InClass{
function in1();
function in2();
}
//先继承后引用
class InSonClass extends MyClass implements InClass{
//全部重载父接口方法
function in1(){
echo "抽象方法1";
}
function in2(){
echo "抽象方法2";
}
}
接口和抽象类的区别:
接口可以同时引用多个,而抽象类只能继承一个
接口里面的方法全部为抽象方法,且不能有实现代码,而抽象类的方法可以有实现代码