-4

基本クラス:

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();-失敗します!まず、オブジェクトを作成する必要があります-不要に見えます(言うまでもなく、このクラスの初期化は非常に複雑ですか?)

4

1 に答える 1