2016-08-17 47 views
0

這是一個例子,其中一個子類方法可以重寫父類的方法,如果該方法的訪問類型是公共 EX:可以私有方法在子類中超過纏身

class Foo { 

    public function fun1() { 
    echo "Hello World"; 
    } 

    public function callMe(){ 
    $this->fun1(); 
    } 
} 


class Bar extends Foo { 

    public function fun1(){ 
    echo "check this out"; 
    } 
} 

$bar = new Bar(); 
$bar->callMe(); //this would print "check this out" 

但如果fun1是如果在父類Foo中獲得private訪問權限,那麼該方法不再受到影響。

例:

class Foo { 

    private function fun1() { 
    echo "hello world"; 
    } 

    public function callMe(){ 
    $this->fun1(); 
    } 
} 

在這種情況下,輸出將是hello world
我想知道,如果可以通過擴展類覆蓋方法fun1,即使訪問類型爲private

回答

-1

不知道PHP,但是按照OOP概念NO因爲具有訪問修飾符private的方法雖然存在但不可覆蓋或可以被子類訪問。如果你想覆蓋它到子類,然後嘗試將訪問修飾符更改爲publicprotected

+2

誰低估了,你無法按照答案?或者你看到答案中缺少什麼? – Rahul

相關問題