php抽象和接口的区别

抽象类:

1.抽象类中的方法有抽象方法也有完整方法(带实体)

2.非抽象子类必须完全实现这个抽象中所有的抽象方法

3.抽象类不能实例化,意义在于被扩展

4.抽象类不必实现具体功能,由子类来完成

5.在子类实现抽象类的方法时,其子类的可见性必须大于或等于抽象方法的定义

 

抽象类和接口的区别:

1.抽象类可以有非抽象的方法,而接口的方法必须是抽象方法

2.一个类可以继承多个接口,而一个类只能继承一个抽象类

3.接口使用关键字implements进行,而抽象类采用extends进行

4.接口的抽象方法前不用也不能abstract关键字,默认隐式就是抽象方法,也不能final关键字来防止抽象方法的继承.而抽象类中抽象方法前则必须加上abstract表示显示声明为抽象方法

5.接口中的抽象方法默认public的,也只能public的,不能privateprotected修饰符修饰.而抽象类可以

6.当一个非抽象类继承抽象类时必须实现所有的抽象方法,而非抽象方法则不用,继承接口时必须实现接口的所有方法

原文地址:https://www.cnblogs.com/zhaozhilu/p/2700267.html