【发布时间】:2018-05-12 15:30:32
【问题描述】:
我有这两个类,我想知道为什么输出是A、B 和B.xxx。有人能解释一下为什么在投射时不是A.xxx吗?
这是我的两个类和主要方法:
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();
}
}
【问题讨论】:
标签: java object inheritance methods casting