1. 程式人生 > 其它 >PHP 面向物件 抽象類

PHP 面向物件 抽象類

使用 abstract 關鍵字申明抽象類和抽象方法。抽象類不能被例項化,只能被其他類繼承。

abstract class A
{
    // 抽象方法沒有函式體,即具體實現

    abstract protected function fun1();

    abstract protected function fun2($num);

    // 普通方法,即非抽象方法

    public function fun3()
    {
        echo __FUNCTION__;
    }
}

class B extends A
{
    // 子類必須定義抽象類中的所有抽象方法

    public function fun1()
    {
        echo __FUNCTION__;
    }

    // 子類方法的訪問控制,必須和抽象類中方法的訪問控制一致,或更為寬鬆

    // 引數必須一致,但子類可以定義父類方法中不存在的可選引數

    public function fun2($num, $num2='0')
    {
        echo $num;
    }
}

// 抽象類不能被例項化

$b=new B();

$b->fun2(1);