【发布时间】:2015-01-21 09:55:54
【问题描述】:
我在一本教科书中读到,标记为私有的类成员不会被继承。
所以我想如果A 类有一个private 变量x 和B 类将扩展A 类,那么B 类中就不会有变量x。
但是,以下示例表明我误解了这一点:
public class testdrive
{
public static void main(String[] args) {
B b = new B();
b.setLength(32);
System.out.print(b.getLength());
}
}
class A {
private int length;
public void setLength(int len) {
length = len;
}
public int getLength() {
return length;
}
}
class B extends A {
public void dummy() {
}
}
结果是 32,我很困惑,因为它看起来像带有 ref b 的对象现在有变量 length,它的值是 32。但是 ref b 指的是从类 B 创建的对象,其中length 变量未定义。
那么真相是什么,B 类是否继承了private 变量length?如果是这样,private变量没有被继承是什么意思?
【问题讨论】:
-
不要在你的标题中添加“Java”,你已经用
java标记了你的问题。
标签: java inheritance