• PHP面向对象之接口


    接口(interface)技术

    什么是接口?

    先看抽象类:

    abstract  class  类名  {

    属性1

    属性2

    .....

    非抽象方法1

    非抽象方法2

    ......

    抽象方法1

    抽象方法2

    ......

    }  

    设想,将上述抽象类中“实在的成员”,删除,即删除那些非抽象的成员。则,自然该抽象类中,就只有抽象方法;

    abstract  class  类名  {

    抽象方法1

    抽象方法2

    ......

    }  

    由此,可以理解为:这个抽象类,“太抽象了”,几乎自己什么都没做,就光让别人做什么。

    那么:

    接口就是这样一个“天然不实在”的家伙:

    接口,就是规定,里面只能放“抽象方法”和“常量”的一种类似类的语法结构;

    ——可见,接口就是“比抽象类更抽象的”一种语法结构。

    接口(interface)定义形式:

    interface  接口名{

    常量1

    常量2

    .....

    抽象方法1

    抽象方法2

    .....

    }

    说明:

    1,可见,接口中,只有常量(接口常量)和抽象方法两种成员;

    2,接口常量的使用形式为: 接口名称::常量名称;

    3,接口中的抽象方法,不要使用abstract修饰,也不需要使用访问控制修饰符,因为其天然就是public

     

    为什么需要接口?

    面向对象编程思想是对“现实世界”的描述(模拟)!

    现实世界往往都都是多继承的;

    但:

    出于降低类跟类之间关系的复杂度的考虑,就将语言设计为单继承的;

    但这样,就无法表达出现实世界的多继承特性;

    则:

    接口就是对没有多继承的类之间关系的一个补充;

    因为:接口可以实现“多继承”——但此时不称为继承而已,而是称为“实现”;

    即:

    接口1  -->> 1

    就称为:类1实现了接口1

    其本质,其实就是类1中,有了接口1中“特征信息”;

    使用形式:

    形式为:

    class  类名  implements  接口名1, 接口名2....{

    //类的定义。

    }

    这里,叫做,类实现了接口。

     

    其中,接口跟接口之间,也可以继承,跟类之间的继承:

    interface  接口1  extends  接口2{

    //接口的成员定义;。。。。

    }

    类和接口的大总结

     

  • 相关阅读:
    前端性能优化总结
    Vue style 深度作用选择器 >>> 与 /deep/(sass/less)
    NPM依赖包版本号~和^的区别及最佳实践
    umi部分使用总结
    FIS 插件机制
    从0到1发布一个npm包
    页面性能监控之performance
    1和new Number(1)有什么区别
    实现一个hoverDelay延迟hover
    触发浏览器回流的属性方法一览表
  • 原文地址:https://www.cnblogs.com/457248499-qq-com/p/7384839.html
Copyright © 2020-2023  润新知