如果你有一个来自X的派生类叫做Y而你有一个派生自Y的那个意味着A是从x派生出来的?总结A是X的孙子,它是从x衍生而来的吗?
class X {}
class Y extends X {}
class A extends Y {}
这将有助于理解我如何能够在孙子类中应用祖父母类和变量。
提前致谢
当然A是由X的传递性推导出来的,所以你可以这样做:
public class X {
public void print() {
System.out.println("X");
}
public static void main(String[] args) {
X foo = new A();
foo.print(); // X
Y bar = new A();
bar.print(); // X
}
}
class Y extends X {
}
class A extends Y {
}
A的实例可以升级到X,是的,但无论如何X只能封装它的方法和变量,A将无法访问它们。所以它不仅仅是关于继承 - 它也是关于封装的,因为它对java中的继承产生了很大的影响。