php – 使用 trait 定義抽象方法

<?php 
trait Hello 
{
    // 只在這裡定義抽象方法,確切的實作會寫在 My::get() 
    abstract public function get();

    // 可被呼叫
    public function say()
    {
        echo 'Hello ' . $this->get();
    }   
}

class My
{
    use Hello;

    private $text;

    public function get()
    {
        return $this->text;
    }

    public function set($val)
    {
        $this->text = $val;
    }
}

$My = new My;
$My->set("World");
$My->say(); //Hello World

 


發表迴響