PHP接口和抽象类有什么区别?

释放双眼,带上耳机,听听看~!
  • 都是抽象类都不能实例化
  • interface 实现类及 abstract class子类都必须要实现已经声明的抽象方法
  • 定义接口interface 关键词;定义抽象类用 abstract class
  • 接口需要实现,要用 implements ;抽象类需要继承,要用 extends
  • 接口中的每一个方法都是抽象方法,都只是声明的,没有方法体,实现类必须要实现。而抽象类的子类可以有选择地实现
  • 接口没有数据成员;抽象类可以有数据成员,实现数据的封装。
  • 接口没有构造函数;抽象类可以有构造函数。
  • 接口的方法都是public类型,而抽象类中的抽象方法可以是protectedpublic,但不能为private
  • 一个类可以同时实现多个接口,但是只能继承一个抽象类
  • 抽象类中并非所有的方法都是抽象的,只有那些冠有 abstract方法才是抽象的,子类必须实现。那些没有 abstract方法,在 abstract class必须定义方法
  • 抽象类的子类在继承它时,对非抽象方法可以直接继承,也可以覆盖;而对抽象方法,可以选择实现,也可以留给其子类来实现,但此类必须也声明为抽象类。既是抽象类,当然也不能实例化
  • 给TA打赏
    共{{data.count}}人
    人已打赏
    php笔记

    PHP类有哪些魔术方法,各有什么用途?

    2020-3-26 10:52:25

    php笔记

    php-fpm 有哪些子进程运行方式?

    2020-3-26 12:03:53

    0 条回复 A文章作者 M管理员
      暂无讨论,说说你的看法吧
    个人中心
    购物车
    优惠劵
    今日签到
    有新私信 私信列表
    搜索