【发布时间】:2012-11-28 22:16:07
【问题描述】:
基类:
abstract class Challenge
{
abstract **static** public function getName();
}
现在有两个类:
class ChallengeType1 extends Challenge
{
public **static** function getName()
{
return 'Swimming';
}
}
class ChallengeType2 extends Challenge
{
public **static** function getName()
{
return 'Climbing';
}
}
大家可能都知道,我们不能使用static,但这是合理的。所以我不能那样做:例如,我有类名,所以我想知道它的名字:ChallengeType2::getName(); - 它会失败!首先我应该构造对象 - 看起来没有必要(更不用说,这个类有什么非常复杂的初始化?)
【问题讨论】:
-
您发布的代码在我所站的位置上运行良好。好吧,一旦星号被删除。
-
请不要用
**static**之类的东西装饰你的代码。您发布的代码应该是有效代码。 -
是什么让你觉得这行不通?你遇到了什么错误?向我们提供足够的信息来帮助您,您将获得更好的结果和更少的反对票。
-
哦,如果我加了static关键字,php 5.4会说:Static function Challenge::getName() should not be abstract in
-
您的代码看起来不错 - 您是从命令行运行它还是通过开发工具(即 Eclipse 等)运行它?你确定你使用的是 5.4 吗?
标签: php object inheritance static