美文网首页
PHP接口与抽象类的介绍

PHP接口与抽象类的介绍

作者: 非资深技术人 | 来源:发表于2021-04-11 12:27 被阅读0次

    接口

    定义接口

    1. 通过interface关键字定义接口
    2. 使用implements操作符来实现接口
    3. 接口定义某个类必须实现哪些方法,不需要定义方法的具体内容,所有方法都是空的

    定义接口要注意一下几点

    1. 接口不能包含成员变量,但可以什么类常量
    2. 接口不能有构造函数
    3. 接口中定义的所有方法都必须是公有,这是接口的特性
    4. 类中必须实现接口中定义的所有方法,而且必须使用和接口定义方法一致的方式,否则会报一个致命错误
    5. 接口中的方法可以定义需要传入的参数,类实现的时候也需要传入
    6. 类可以实现多个接口,用逗号来分隔多个接口的名称
    7. 实现多个接口时,接口中的方法不能有重名
    8. 接口也可以继承,通过使用extends操作符

    抽象

    定义抽象

    1. 使用abstract关键字定义抽象
    2. 任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的
    3. 定义为抽象的类不能被实例化
    4. 被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现
    5. 继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必须和父类中一样(或者更为宽松)
      eg: 例如某个抽象方法被声明为受保护的,那么子类中实现的方法就应该声明为受保护的或者公有的,而不能定义为私有的
    6. 此外方法的调用方式必须匹配,即类型和所需参数数量必须一致
      eg:例如,子类定义了一个可选参数,而父类抽象方法的声明里没有,则两者的声明并无冲突

    接口和抽象的区别

    1. 对接口的继承使用implements,抽象类使用extends
    2. 接口中不可以声明变量,但可以声明类常量.抽象类中可以声明各种变量
    3. 接口没有构造函数,抽象类可以有
    4. 接口中的方法默认为public,抽象类中的方法可以用public,protected,private修饰
    5. 一个类可以继承多个接口,但只能继承一个抽象类
      ————————————————
      版权声明:本文为CSDN博主「dece」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
      原文链接:https://blog.csdn.net/qq_39309714/article/details/88925402

    相关文章

      网友评论

          本文标题:PHP接口与抽象类的介绍

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