继承的私有成员,究竟是如何回事呢?
class Father
{
private int a;
int getA()
{return a;}
void SetA(int a)
{
this.a = a;
}
}
class Son extends Father
{
}
Class Test
{
public static void main(String[] args)
{
Son son = new Son();
son.setA(a);
System.out.println(son.getA());
}
}
对于a这个私有成员,子类进行getA,setA方法的使用,是在使用父类的那个私有成员么?可以使用,只是没有进行直接控制。
这是说明子类中其实是存在这一个私有成员变量的,只是无法直接访问?
------解决方案--------------------一定要纠正一个错误的观念,父类中的私有成员,不是不能被子类继承,而是子类无法直接访问!
所以子类进行getA,setA方法的使用,是在使用父类的那个私有成员。
------解决方案--------------------父类的private属性是可以被子类继承的,只是对子类来说是隐藏的不可见的。继承关系中唯一不能被子类继承的就是构造器了。楼主其实已经说的很对了,父类中定义了属性a,在main方法中获取的a的值是子类中的,虽然子类中没有定义a,但是a确实是被继承了,才能被子类的对象调用。