私はこれらの2つのクラスを持っており、なぜ出力がA
,B
、B.xxx
であるのかを知りたいと思います。誰かがキャストされたときになぜそれがA.xxx
ではないのか説明できますか?あなたが相続...フォームBが延びキャストオブジェクトと継承
A my_A = new B()
の変数の初期化を持っているときに
public abstract class A {
public A() {
System.out.println("A");
}
public void xxx() {
System.out.println("A.xxx");
}
abstract void yyy();
}
public class B extends A {
public B() {
System.out.println("B");
}
public void xxx() {
System.out.println("B.xxx");
}
public void yyy() {
System.out.println("B.yyy");
}
}
public class ClassRunner {
public static void main(String[] args) {
B b2 = new B();
((A)b2) .xxx();
}
}
https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html – shmosel