让我们这个类一般继承(不只是)在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