0
最上位のクラスにメソッドprintKlass()
を作成して、それを継承し、getClass().getSimpleName()
の値を含む最上位の変数KLASS
を出力します。継承されたメソッドを使用して継承階層の各レベルでSimpleClassNameを表示する方法はありますか?
したがって、クラスAの場合、printKlass
メソッドはA
と記述する必要があります。
クラスBはB
を出力します。
コンパイラでは、パートクラスのgetClass
メソッドにアクセスすることはできません。static
コンテキストでは、this
は利用できません。
どうすればこの問題を回避できますか? 静フィールドとして
public class A
{
protected static final String KLASS = this.getClass().getSimpleName(); // "Cannot use 'this' in a static context
protected
public void printKlass()
{
System.out.println(KLASS);
}
}
public class B extends A
{
//...
printKlass(); // Should say "B", not "A"
//...
}