Java类派生词

问题描述 投票:0回答:3

如果你有一个来自X的派生类叫做Y而你有一个派生自Y的那个意味着A是从x派生出来的?总结A是X的孙子,它是从x衍生而来的吗?

class X {}
class Y extends X {}
class A extends Y {}

这将有助于理解我如何能够在孙子类中应用祖父母类和变量。

提前致谢

java class
3个回答
2
投票

你的问题的简单答案是,

是。

inheritance


如果class X有任何非private实例方法或变量,所有这些方法或变量都通过class A继承到class Y

class X {

    int z = 2;

}

class Y extends X {
}

class A extends Y {

    public static void main(String[] args) {
        System.out.println(new A().z);
    }
}

输出是,

2

2
投票

当然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 {  

}

0
投票

A的实例可以升级到X,是的,但无论如何X只能封装它的方法和变量,A将无法访问它们。所以它不仅仅是关于继承 - 它也是关于封装的,因为它对java中的继承产生了很大的影响。

© www.soinside.com 2019 - 2024. All rights reserved.