php 面向对象基础总结
admin
2023-07-02 19:45:13
0

封装

封装,继承,多态是面向对象的三大特性,本文总结一下 php 是如何实现这三大特性的

封装

创建类

普通类

class className{
    public $attribute1  //成员属性

    //成员方法
    function fun1(){
        echo "method1"
    }         
}

抽象类

abstract class className1{
    //抽象方法
    abstract public function fun1();
    abstract private function fun2();
    abstract protected function fun3();
}
  • 抽象类至少有一个抽象方法

  • 抽象类不能被实例化,只能被继承 extends

  • 继承的派生类要把所有方法重载才能实例化对象

接口

可以看做是一种成员属性全部为抽象的抽象类,用作定义规范(面向接口编程)

interface IName {
    const NAME;
    function fun1();
}
  • 接口中方法 必须全为 抽象方法

  • 接口中成员方法和属性为 public

  • 接口成员属性必须为常量

  • 接口不能被实例化,只能被引用 implement

  • 被引用后,派生类不许把所有方法重载才能实例化对象

new 关键字

实例化对象,使用 -> 访问对象内容 (成员属性和成员方法)

$instance1 = new className;    //实例化对象
$instance1->attribute1;        //访问成员属性
$instance1->method1();           //访问成员方法

封装关键字 public, protected, private

作用域publicprotectedprivate
全局YesNoNo
继承类YesYesNo
本类YesYesYes

类的成员方法前如不加封装关键字,默认为public,不过最好加上关键字,便于阅读

$this 关键字

访问当前 对象 中的成员属性和成员方法

self:: 关键字

在不实例化的情况下访问当前 的成员属性和成员方法, 作用域在定义类时确定。该关键字常与 static, const 搭配使用,用于访问静态成员和常量

类名:: 属性名 或 类名:: 方法名

在不实例化的情况下访问当前 的成员属性或成员方法。常用于在派生类中访问基类成员

继承

extends 关键字

php 只能单一继承

class B extends A{
    ......
}

implements 关键字

用于引用接口,不同于继承的单一性,一个类可以引用多个接口

class A implements demo1, demo2, demo3{
    ......
}

extends 与 implements 混用

先继承后引用,单继承多引用

class A extends B implements demo1, demo2, demo3{
    ......
}

final 关键字

final class className1{
    final func1(){
        ......
    }
}
  • 加了 final 关键字的类不能被继承

  • 基类中加了 final 关键字的成员方法不能在派生类中被重载

多态

static 关键字

加了 static 关键字的成员方法和成员属性不具备多态性,用于在不实例化的情况下访问。静态属性单独占用内存,不会在对象实例化时被反复创建。

class className1{
    static $atrr1;
    static func1(){
        ......
    }
}

const 关键字

用于在类中定义常量,类似用于在外部定义常量的PHP关键字 define(); const 只能修饰类中的成员属性

class className1{
    const NAME;
}

常量一般用大写字母命名,且常量不使用 $ 符号

instanceof 关键字

用于判断对象实例类型

$obj = new A();

if ($obj instanceof A) {
   echo 'A';
}

摘自php手册

相关内容

热门资讯

网红“悍马糖”被查 近日,据江苏南京《金陵警事》报道:看似普通糖果,号称“增强精力”,实则暗藏致命风险。南京秦淮警方成功...
灶具打不着火原因 1、如果灶具进入了过压保护的时候,灶具是不会打火启动的,所以这样就会导致灶具打不着火的问题发生。2、...
灶一边打不着火 1、可能是由于一边的打火针上面比较脏,出现点火针跑偏的现象。2、也有可能是由于打火的时候,打不着火的...
苏泊尔电饭锅一会儿通电一会儿不... 由于电饭煲的待机电路出现了问题,待机电路需要一个小信号的信号电路,也就是把220伏转成五伏电压,这个...
红日燃气灶怎么样-红日燃气灶好... 最佳回答 红日燃气灶的质量很不错呀。红日燃气灶还是一个比较受欢迎的燃气灶品牌的,这个品牌的燃气灶,性...
油烟机报警器一直响怎么办 当油烟机报警器一直响时,我们需要立即采取应对措施以确保安全。以下是一些应对措施:1.关闭油烟机:当油...
路面突然塌陷,目击者:两人连人... 近日,四川广安岳池县城,有市民骑车经过一处井盖旁的道路时突遇路面塌陷。现场目击者告诉红星新闻,车上两...
中国人民大学发布“观天 短临降... 中新社北京5月30日电 (记者 曾玥)中国人民大学高瓴人工智能学院30日在北京发布“观天 短临降水智...
无线远程遥控多高速摄像机同步采... 导语:在体育科研、康复医学及工程仿生领域,高速摄像同步采集技术已成为运动行为分析、步态研究及损伤诊断...
原创 小... 随着游戏不断更新,对配置的要求同步提升,所以倾向于游戏的机型,均为中端机起步,确保游戏运行流畅。部分...