您的位置:首页 > 其它

深入理解子类继承父类中的成员变量问题

2011-10-15 18:39 429 查看
又学到小知识点,真不错。。。真的感谢CSDN了,呵呵。。

经过测试,总结如下:

关于继承中的成员变量问题:

先上代码:

public class Testextends {

int a = 0;

public static void main(String[] args) {

Sub s = new Sub();

System.out.println(s.a);

System.out.println(((Testextends)s).a);

}

}

class Sub extends Testextends{

int a = 1;

}

打印结果:

1

0

原因:由于在父类中又定义了a,此时,Sub中的a已经和Testextends中的a不是同一个变量了。

所以在打印s.a的时候,会打印出1.而做转换之后,打印的是父类中的a,也就是0了.

而我们传统的说子类继承父类,与父类共享一个a,它的前提是子类中不再定义与父类同名的变量。demo:

class Sub extends Testextends{

//public final static String foo = "ball";

public Sub(){

a = 1;

}

}

此时,打印结果是1,1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐