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

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值