2017-09-28 96 views
0

他們有什麼辦法來防止子類中超類的功能重寫。如果是,請讓我知道。提前致謝。以這種方式防止子類中的超類功能覆蓋

+0

最終功能:http://php.net/manual /en/language.oop5.final.php –

回答

1

可以使用final關鍵字:

例子:

class CanBeInherited { 
    public final function cantBeInherited() { 
     ... 
    } 
} 

final class CannotBeInherited { 
    public function cantBeInheritedEither() { 
     ... 
    } 
} 

class Child extends CanBeInherited { } //This is fine 
class Child2 extends CanBeInherited { 
    public function cantBeInherited() {} //Error 
} 
class Child3 extends CannotBeInherited {} //Error 
+0

你能否讓我知道爲什麼這行是錯誤的。 class Child3 extends CantBeParent {} – Sucharitha

+0

因爲'CantBeParent'是'final'因此不能是父類(因爲這是類的最終手段)。 – apokryfos

+0

明白了。謝謝。(我沒有看到child3從cantbeparent延伸,我認爲它是canbeparent)。 – Sucharitha

1

聲明函數在超類

class Foo 
{ 
    final public function bar() 
    { 
     //Do action A 
    } 
}