2

親の子クラスにアクセスすることは可能ですか?

たとえば、次のコードの出力を「赤青」にします。

class Color {
    public final void printName() {
        System.out.println(__Something_Here!!!__.class.getSimpleName());
    }
}

class Red extends Color;

class Blue extends Color;

main() {
    Red red = new red();
    Blue blue = new blue();
    red.printName();
    blue.printName();
}
4

3 に答える 3

1

書く

class Color {
    public final void printName() {
        System.out.println(this.getClass().getSimpleName());
    }
}

getClass()メソッドによるすべてのJavaオブジェクトは、すべてのクラス情報にアクセスできます。

于 2012-04-23T05:01:28.983 に答える
1

getClass()任意のオブジェクトのクラスオブジェクトを返すために使用できます。

public final void printName() {
    System.out.println(getClass().getSimpleName());
}

詳細については、Javadocを参照しgetClass()てください

于 2012-04-23T05:02:22.290 に答える
0

あなたがprintName()プライベートにした場合ではありません。保護されている場合は、

Red red = new Red();
Blue blue = new Blue();
red.printName();
blue.printName();

その後、電話します

System.out.println(this.class.getSimpleName());

現状では、privateはメソッドの継承を禁止Redしています。Blue

于 2012-04-23T05:02:47.170 に答える