PHP面向对象

类权限修饰符:public,protected,private

类的三个特性:封装,继承,多态

    封装:数据封装就是将实例变量隐藏起来,不能直接访问实例变量

    继承:单一继承,只能继承一个父类;方法重写,子类方法名称与父类方法名称重复,会覆盖父类方法,不想覆盖可以使用“parent::funcName()”。

    多态:抽象类的定义abstract;接口类的定义interface


抽象类:抽象的类不能被实例化,任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。(抽象类可以没有抽象方法,但是抽象类依然不能被实例化)被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。

        继承一个抽象类的时候,非抽象子类必须定义父类中的所有抽象方法,这些方法的访问控制必须和父类中一样(或者更为宽松),此外方法的调用方式必须匹配,即类型和所需参数数量必须一致。

        抽象方法不能定义为私有。抽象类可以继承抽象类,且不能重写抽象父类的抽象方法。

接口类:可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容,就像定义一个标准的类一样,但其中定义所有的方法都是空的。

        接口中定义的所有方法都必须是公有,这是接口的特性,protected和private会报错。

        常量:接口中也可以定义常量。接口常量和类常量的使用完全相同,但是不能被子类或子接口所覆盖。

        要实现一个接口,使用 implements 操作符。非抽象类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称(实现多个接口时,接口中的方法不能有重名)。接口也可以继承,通过使用 extends 操作符。类要实现接口,必须使用和接口中所定义的方法完全一致的方式。否则会导致致命错误。

        抽象类实现接口,且可以不实现其中的方法。

        可以同时继承抽象类和实现接口,extends要写在前面。

interface Play{

    const LEVEL=10; 

    public functionPlayLOL(); 

    public functionPlayFootball(); 

interface Read{ 

    public functionReadNovel(); 

}

abstract class Human{

    abstract functioneat();

}

abstract classSutdentextendsHumanimplementsPlay,Read{

    abstract functionstudy();

}


魔术方法:__construct,__destruct,__call(),__callStatic(),__get(),__set(),__isset(),__unset(),__sleep(),__wakeup(),__toString(),__clone()


设计模式:工厂模式,单例模式,注册树模式,适配器模式,观察者模式,策略模式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 什么是面向对象? 面向对象是一种先进的编程模型,相对于面向过程编程,面向对象更具有逻辑性,使程序代码更加的健壮、易...
    我爱开发阅读 598评论 0 2
  • (一):面向对象编程OOP OOP(Object-Oriented Programming), 面向对象的编程)技...
    Mr_Arvin阅读 355评论 0 3
  • 简介 PHP 对待对象的方式与引用和句柄相同,即每个变量都持有对象的引用,而不是整个对象的拷贝。 基本概念 类的定...
    给我一炷香的时间阅读 1,504评论 0 11
  • (一):面向对象编程OOP OOP(Object-Oriented Programming), 面向对象的编程)技...
    楚江云阅读 1,907评论 2 24
  • 继承 运动员 所拥有的的属性和方法:姓名 身高 体重 所在球队 球员号码 讲话 行走 扣篮 运球 演员 所拥有的的...
    dptms阅读 850评论 0 1

友情链接更多精彩内容