私はこれを実行しています。なぜこれが実行され、両方の行にBBが印刷されるのか理解できません。Javaの継承なぜtoStringはAB、ABではなくBBを出力するのですか?
class A {
public String toString(){
return this.getClass().getSimpleName();
}
}
class B extends A {
public String toString(){
return super.toString() + this.getClass().getSimpleName();
}
}
public class Main {
public static void main(String[] args) {
A a = new B();
B b = new B();
System.out.println(a);
System.out.println(b);
}
}
これは両方ともクラスBのオブジェクトなので、 – dunni
なぜですか? 'A a = new B();'なので、 'a'は実際に' B'のインスタンスです。 –