深入理解子类继承父类中的成员变量问题
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
经过测试,总结如下:
关于继承中的成员变量问题:
先上代码:
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
相关文章推荐
- C++继承时子类父类同名成员变量的问题
- java 子类继承父类成员变量的隐藏、实现方法的重写
- C++继承时子类定义同名成员变量时的调用继承函数的问题
- 静态变量、实例变量初始化时机,以及子类隐藏父类成员时,创建子类对象的一些问题
- JAVA final 、super 关键字以及继承关系中父类与子类实例变量初始化的 理解
- 继承:子类可以继承父类的私有成员变量吗??
- Java中在从父类中继承的成员变量在子类改变,怎么父类(super.num)的成员也一起改变?
- Java编程中,子类可以用用这种方法给继承父类的成员变量赋值么?
- 关于继承时子类重写父类方法和覆盖父类变量的若干问题 (待进一步研究)
- 子类继承父类的同时又去实现一个成员变量、方法与父类相同的接口,最后调的是谁的成员变量和方法?
- 子类继承父类共有成员问题
- 成员变量是类时与继承类中父类在子类中内存情况
- 深入理解父类变量引用子类对象
- 继承 子类对父类成员变量的覆盖
- [C++] 关于子类声明与父类同名同类型的成员变量的问题
- java在继承中父类的成员变量是否会被子类所覆盖
- 父类的私有成员变量能被子类继承吗?
- java子类成员变量与父类重名问题解释
- C++继承时子类定义同名成员变量时的调用继承函数的问题
- C++中父类成员变量和子类成员变量重复定义及访问方法的深入探究