2012-02-27 59 views
0

我剛剛開始使用OO PHP,所以請原諒我的無知。在子類對象中訪問父項屬性

假設我有一個A級

class A{ 
    function show(){ 
     return 15; 
     } 
    } 

和一個孩子的B類

class B extends A{ 
    function show(){ 
     return 25; 
     } 
    } 

當我做

$object = new B; 
$object->show(); 

我得到25,這意味着我訪問子屬性。我如何訪問父項屬性;我試着$ object-> A :: show(),$ object :: show(),我不斷收到錯誤,並且由於我剛剛開始,我不知道該怎麼去Google。

回答

4

你想做對象設計的衝突基礎知識 - 如果覆蓋父方法,它不能從子實例外部調用(在父::內部)。看看你的設計,並試圖弄清楚,如何避免這種情況。

編輯: 你調用這個例子兩者都是無效的 - 唯一有效的是

class B extends A{ 
    function show(){ 
    return parent::show(); 
    } 
} 
+0

這不是一個真實的世界的情況,我只是learnig,所以我試圖找到我的方式圍繞各種情況。你是在暗示我想要的是不可能的?在PHP中是 – ppp 2012-02-27 09:01:30

+0

是的,例如在C++中它可以被解決,但它仍然是有效的,因爲對象B必須具有完整的功能,所以你不需要直接調用父方法 – SergeS 2012-02-27 09:04:15

1

要覆蓋在子類中的性能表現,所以要訪問它的父類,你必須實例化類的一個對象

$object = new A(); 
$object->show(); 

現在有辦法acccess父對象功能展示()和子類的實例

+0

我想要做一個B對象。我不需要,因爲我只是在學習,但我想知道如何用B對象來完成。 – ppp 2012-02-27 09:00:13

+0

你可以在子類的顯示功能中使用parent :: show()。因爲這是返回2個不同的值,這並不是真的有一個點,雖然 – clem 2012-02-27 09:03:22