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

PHP抽象类与接口

作者: wyc0859 | 来源:发表于2019-10-07 17:07 被阅读0次

    如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类。
    如果要创建将由一些不相关对象采用的功能,就使用接口。
    如果必须从多个来源继承行为,就使用接口。
    如果知道所有类都会共享一个公共的行为实现,就使用抽象类,并在其中实现该行为。

    abstract跟interface的区别

    接口没有数据成员,但是抽象类有数据成员,抽象类可以实现数据的封装。
    接口没有构造函数,抽象类可以有构造函数。
    接口中的方法都是public类型,而抽象类中的方法可以使用private、protected或public来修饰。
    抽象类中可以有抽象方法,也可以有普通方法
    一个类可以同时继承多个接口,但是只能继承一个抽象类。

    何时用接口 何时用抽象类

    1、如果所有抽象出的方法不确定性很高,就定义为接口来封装,所有方法抽象,由实现类全部实现
    2、如果部分抽象出的方法不确定性很高,就定义为抽象类来封装,能确定的方法实现,不确定的方法抽象,由实现类部分实现,部分重写(不变就不用重写)
    3、如果所有抽象出的方法确定性很高,就定义为基础类,所有方法提供基本实现,由子类去重写(不变就不用重写子类)
    4、如果需要多继承那肯定是接口
    5、如果为了规范子类,那就用抽象类,毕竟是继承。
    6、如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类。
    7、如果要创建将由一些不相关对象采用的功能,就使用接口。

    相关文章

      网友评论

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

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