抽象类和接口的区别
相同点:
抽象类和接口都不能被实例化
抽象类和接口的抽象方法在被子类继承/实现的时候,对应的方法一定要实现,否则就会报错
抽象类和接口的抽象方法如果有参数,参数有默认值,那么子类继承/实现该方法的时候参数和默认值也都要有
不同点:
抽象类的抽象方法前面必须用 abstract 不用就默认为普通方法,抽象类里面可以有普通方法,又有抽象方法,而接口中的抽象方法可以省略,因为接口中只有抽象方法
抽象类的抽象方法只能用 public 和 protected,因为 prevate 会导致该方法不能被继承,接口中的方法只能用 public
接口的关键词是:interface(接口),implement(实现)const(常量),抽象类的关键词是:abstract(抽象的)
一个类可以实现多个接口,中间用逗号,却不能同时继承多个抽象类方法(也就是父类),一个类可以先继承父类,然后再实现接口
接口中只能规定方法,不能写属性,只能声明常量,抽象类可以写属性
特别感谢
本作品采用《CC 协议》,转载必须注明作者和本文链接