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());
}

有关详细信息,请参阅JavadocgetClass()

于 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());

实际上,私有禁止RedBlue继承该方法。

于 2012-04-23T05:02:47.170 回答