私有字段不继承所以在B类中不存在z但是方法setz(int a)存在!
class A{
private int z=1;
public void setz(int a){
z=a;
}
}
class B extends A{
}
如果新的B类对象并调用setz(int a)z改变但是这个方法应该有错误,因为z不存在!怎么解释呢?
答案 0 :(得分:6)
您认为z
中不应存在B
的错误。确实private
变量不是继承的,但这并不能阻止它存在。它只是B
无法访问。
答案 1 :(得分:2)
setz(int a)
不会出错,因为它是公开的。此外,父类中仍存在z
。
B b = new B();
b.z = 1; // Error because z is a private member of A
b.setz(1); // No error because setz() is a public method of A