PHP面向对象编程(二)

2021-01-18 21:11

阅读:581

标签:水平   pre   依赖   his   prot   this   一个   垂直   基本使用   

通过对象组合水平扩展PHP类功能

基本实现

所谓对象组合,简而言之,就是在一个类中组合(或者说依赖)另一个类而不是继承另一个类来扩展他的功能,如果说类继承是垂直扩展类功能,那么对象组合则是水平扩展类功能,某种角度说,这也是对单继承机制的一种补充,是的类具有水平扩展的功能。

//以汽车和动力来源的关系举例子,汽车依靠汽油或者电力才能启动
brand = $brand;
    }
    
   	abstract public function drive();
    abstract public function power(Gas $gas);
}

class LynkCo01 extends BaseCar
{
    public function __construct()
    {
        $this->brand = ‘领克01‘;
    }
    
    public function drive()
    {
        echo "启动{$this->brand}汽车" . PHP_EOL;
    }

    public function power(Gas $gas)
    {
        echo "动力来源: " . $gas . PHP_EOL;
    }
}

通过Trait 水平扩展PHP类功能。

基本使用

Trait结构通过关键字Trait定义:

类中通过use关键字引入

class Car
{
    use Power;

    public function drive()
    {
        echo "动力来源:" . $this->gas() . PHP_EOL;
        echo "汽车启动..." . PHP_EOL;
    }
}

可见性

Trait 和类一样,支持属性和方法以及可见性设置(privateprotectedpublic),并且即使是 private 级别的方法和属性,依然可以在使用类中调用:

water() . PHP_EOL;
        echo "切换动力来源:" . $this->battery() . PHP_EOL;
        echo "切换动力来源:" . $this->gas() . PHP_EOL;
        echo "汽车启动..." . PHP_EOL;
    }
}

$car = new Car();
$car->drive();

使用Trait不同于类继承,完全是把Trait的所有代码组合到类中,变成了类的一部分,所以Trait中定义的属性类中就不能在重复定义了。

PHP面向对象编程(二)

标签:水平   pre   依赖   his   prot   this   一个   垂直   基本使用   

原文地址:https://www.cnblogs.com/bigcola/p/13341648.html

上一篇:JSP (一)

下一篇:Ajax


评论


亲,登录后才可以留言!