php中的封装、继承、多态

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:29   1949   0

1、封装

隐藏实现的细节,代码模块化。

一是方法封装,即将使用者关注的功能暴露,而隐藏其他使用者用不到的功能;二是属性封装,即对用户的数据进行控制,防止不合法的数据传输设置。

2、继承

继承是实现代码重用。

php中用extends实现继承。在子类中用extends继承父类,子类可以继承来自父类的非私有属性和方法。

  • 子类只能继承父类的非私有属性。
  • 子类使用父类中的方法时,直接用$this->父类方法调用。
  • 子类不能同时继承自好几个父类,但是可以多层继承。
  • >>> class Person{}
  •    class Chengnian extends Person{}
  •    class Student extends Chengnian{}
      Student类就同时具有了Chengnian类和Person类的属性和方法

3、多态

实现接口重用。”一个接口,多种方法“。

条件:1、子类继承父类。

2、子类重写父类的方法。

3、父类引用指向子类对象。

代码demo:

abstract class Person{
        abstract function say();
    }
    
    class Chinese extends Person{ // 条件一:子类继承父类
        function say(){ // 条件二:子类重写父类方法
            echo "我说中文!<br>";
        }
    }
    class English extends Person{ //条件一:子类继承父类
        function say(){ // 条件二:子类重写父类方法
            echo "I speak English!<br>";            
        }
    }
    
//    Person $c = new Chinese(); // 父类引用指向子类对象,PHP中此形式行不通
//    Person $e = new English();
    
    function func(Person $p){ //PHP中的类型约束只存在与函数的形参
        $p -> say();
    }
    func(new Chinese()); // 条件三:父类引用指向子类对象
    func(new English()); // 条件三:父类引用指向子类对象

转载于:https://www.cnblogs.com/haley0125/p/8567876.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP