美文网首页
PHP中抽象类和接口的区别

PHP中抽象类和接口的区别

作者: 乔四儿丶 | 来源:发表于2019-11-26 17:32 被阅读0次

最近在读PHP文档,发现网上的说法和文档的说法不一致,手动实践后发现文档当然是正确的,
所以结合文档,做下总结

抽象类(extends继承 abstract定义)

  1. 抽象类不能被直接实例化
  2. 抽象类里有0个或多个抽象方法
  3. 抽象方法只能声明调用方式,不能定义实现方式
  4. 子类必须实现所有父抽象类的抽象方法,且访问控制和父类一样或更宽松,且调用方式一致(参数数量和类型)
  5. 构造方法同样适用4

接口(extends接口继承 interface定义 implements类继承)

  1. 接口中定义的方法都为空,继承接口的类必须实现所有方法
  2. 不能被直接实例化
  3. 接口中所有方法都是public
  4. 允许构造方法
  5. 可以定义常量和类常量,但是不可以被子类或子接口覆盖

相同点

  1. 不能被直接实例化
  2. 抽象方法必要在子类里实现,且参数类型和数量一致

不同点

  1. 接口可以定义常量和类常量,抽象类没限制
  2. 抽象类里的抽象方法不能是private,接口中的抽象方法只能是public
  3. 关键词不同
  4. 继承数量不同
  5. 抽象类可以继承接口和抽象类,而不实现其中的抽象方法

应用场景
接口:实现一组功能,功能之间不相互依赖,比如PHP的数组函数等
抽象类:类和类之间有关联,有公用的方法,又有自己特定的功能

相关文章

  • php中抽象类和接口的区别

    概念 面向对象的三大概念:封装,继承,多态 ;把属性和方法封装起来就是类。 一个类的属性和方法被另外...

  • php中抽象类和接口的区别

    先看官方文档中的定义:抽象类:PHP 5 支持抽象类和抽象方法。定义为抽象的类不能被实例化。任何一个类,如果它里面...

  • PHP中抽象类和接口的区别

    最近在读PHP文档,发现网上的说法和文档的说法不一致,手动实践后发现文档当然是正确的,所以结合文档,做下总结 抽象...

  • 5.5-全栈Java笔记:接口的定义和使用

    接口interface 接口的作用 为什么需要接口?接口和抽象类的区别? 接口就是比“抽象类”还“抽象”的“抽象类...

  • 第18条:接口优于抽象类

    java中可以用来定义允许多个实现的类型有两种:接口和抽象类。 接口和抽象类的区别: 1,抽象类中可以存在某些方法...

  • Java抽象类和接口类

    Java中接口和抽象类的区别是什么?什么时候用接口?什么时候用抽象类?抽象类和接口存在的意义是什么?能解决哪些编程...

  • 抽象类和接口区别

    一.抽象类和接口区别: 抽象类由abstract关键字来修饰,接口由interface关键字来修饰。 抽象类中除了...

  • 接口测试哪几个点是需要特别关注的?

    接口和抽象类的区别: 1、都不能被实例化。 2、接口的实现类和抽象类的子类只有全部实现了接口或者抽象类中的方法后才...

  • 经典面试题(java 整理(一))

    1.接口和抽象类的区别 ①抽象类里可以有构造方法,而接口内不能有构造方法。 ②抽象类中可以有普通成员变量,而接口中...

  • 新手做接口测试哪几个点是需要特别关注的?

    接口和抽象类的区别:1、都不能被实例化。 2、接口的实现类和抽象类的子类只有全部实现了接口或者抽象类中的方法后才可...

网友评论

      本文标题:PHP中抽象类和接口的区别

      本文链接:https://www.haomeiwen.com/subject/gjdywctx.html