基本クラス:
abstract class Challenge
{
abstract **static** public function getName();
}
今それから2つのクラス:
class ChallengeType1 extends Challenge
{
public **static** function getName()
{
return 'Swimming';
}
}
class ChallengeType2 extends Challenge
{
public **static** function getName()
{
return 'Climbing';
}
}
ご存知かもしれませんが、使用することはできませんがstatic
、合理的です。だから私はそのようにすることはできません:例えば、私はクラス名を持っているので、それの名前を知りたいです:ChallengeType2::getName();
-失敗します!まず、オブジェクトを作成する必要があります-不要に見えます(言うまでもなく、このクラスの初期化は非常に複雑ですか?)