0
所以我們可以說我有類調用父和子,這將從一個名爲PHP文件caller.php如何防止在PHP中的子實例中使用公共父方法?
class Child extends Parent {
}
class Parent {
public function parentMethod(){
}
}
caller.php
防止被繼續使用:
$child = new Child();
$child->parentMethod();
允許的:
$parent = new Parent();
$parent->parentMethod();
我想防止調用parentMet像這樣。但是,如果我創建了父對象,我希望能夠調用parentMethod。有什麼方法可以用來隱藏這個方法在Child類中被公開,但是仍然允許父對象公開地調用這個方法?
唯一能做的我已經想出到目前爲止是使這些方法保護,然後創建一個其他類,將延長父母,然後有它需要每個功能的公共方法,但聽起來並不很聰明。
沒辦法正確的方式。理智的方式。根據定義,您使用「public」,因此您將這些方法定義爲在任何地方都可見。如果你想隱藏子類的父方法,使用'private' - 但是這樣的方法不會在任何地方看到,而是那個類本身。 –
所以我應該讓他們受到保護,並創建另一個類來調用所需的受保護方法? – Firze
'保護'是不夠的。這意味着無處不在,包括兒童班。爲了隱藏孩子的方法,使用'私人' –