2015-12-07 45 views
2

標題說明了一切。 我有一個有很多變量和很多方法的類。是否可以在不擴展此類的方法的情況下擴展一個類?

class bootstrap_class { 
public 
//-----Counters--------- 
$iColumn_count, 
$iLink_count, 
$iDia_count, 
$iTab_count, 
$iPadding, 
$iColumns_per_page, 

//-----Strings--------- 
$sCentered, 
$sClass, 
etc; 

public function a() { 
    //do something 
} 

public function b() { 
    //do something 
} 
} 

我想擴展這個類來創建一個沒有所有方法的類。 然後我想將這個新的類對象存儲到父類的數組變量中。

是否可以擴展一個類而不擴展該類的功能?

+0

PHP類符合基本LSP和亞型多態性(這意味着一個亞型「可以做一樣多,並且通常更」比母體)。在這種情況下「延長」班級可能不是一個好主意。 – user2864740

+0

私人方法/ params在受保護或公開的兒童課程中不可用。您不需要在兒童中重新輸入它們,當您擴展父母時,它們已經在那裏。 – Svetoslav

回答

3

它是不可能你想要它的方式。但以下是唯一的方法來做到這一點。

您所要做的就是在父類中將方法的可見性從public更改爲private。詳情請參閱下文。

what are public private and protected in Object Oriented Programming

+0

所以答案是否定的。我不能讓這些功能變成私人的,我需要它們公開! – Abayob

+0

@ user2864740我的意思是在父類中使方法私有。你說得對,它可能是公開的,但它是唯一的方法。 – mega6382

+1

好吧,我會很生氣的。 PHP驚喜再次獲勝。在子類中定義爲「private」的方法(當它是超類中的「public」時)將在訪問時引發錯誤。如果方法被「刪除」,我仍然不會推薦擴展一個類,但是... – user2864740

相關問題