父类私有成员子类不能继承

img


书上是父类私有成员子类不能继承,但是图上student的带参构造方法中有name,age(这俩是父类私有成员属性)。然后new student("张三",23,100),这不是student类中也有name,age属性,这是继承了还是没继承

子类如果需要用父类的属性,前提是父类提供了公共的get,set方法和有参构造,你没看到子类的构造方法里是super(name,age)吗,如果父类不提供get,set方法,子类还是用不了,子类里用this.name,肯定是不行的,子类只能通过getName()获取name字段,而getName()方法是父类提供的

私有变量是可以继承的。相当于复制了一份父类的代码给子类。除了被final关键字修饰的变量和构造方法以外。私有变量中 存在setname()和getname()这两个方法就是用来访问和修改私有变量的。所以是可以被继承和访问以及对私有变量的修改

img


官方说明的机翻,因为你父类有公共的方法访问这些私有属性,所以子类可以使用。

确实父类的私有成员子类是不能继承的。但你的问题只是构造函数的构造参数而已。子类只是访问了父类的函数而已,并没有访问父类的这两个私有成员啊

但是图上student的带参构造方法中有name,age(这俩是父类私有成员属性)
这明显只是student里面定义的俩变量,你把它叫x,y也不影响逻辑,跟父类没有一毛钱关系