讓我們這個類一般繼承(不只是)在PHP
class A {
protected static function ident() { return "I am A"; }
public static function say() { return "I say '".self::ident()."'!"; }
}
然後,我需要延長A類並覆蓋IDENT()這樣
class B extends A {
protected static function ident() { return "I am B"; }
}
現在,當B :: say();被調用,結果是我說'我是A'。是否有任何技術如何強制它產生我說'我是B'without overriding the say() method
? (請不要問我爲什麼要這樣做,只要相信我在我的項目中是合理的)
我相信這是可以通過抽象類或接口,但我無法弄清楚如何。如果在PHP中不可能,是否有任何實現此功能的語言(Haskell除外)?
賓果!這解決了問題!謝謝! public static function say(){return「I say'」.static :: ident()。「'!」; } – 2010-08-23 20:34:02