php中的封装、继承、多态

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()); // 条件三:父类引用指向子类对象

 

posted @ 2018-03-14 15:24  兔子兔子0125  阅读(201)  评论(0编辑  收藏  举报