Java继承的相关注意事项
1. 一个类的直接父类只能有唯一一个
class A{}
class B extends A{}//正确
class C{}
class D extends A, C{}//错误
![](https://i-blog.csdnimg.cn/blog_migrate/0190a0768f6b90f2e9b265683ebf846d.png)
2. Java语言可以多级继承
- java.lang.Object时所有类的最高父类
class A{}
class B extends A{}//正确
class C extends B{}//正确
![](https://i-blog.csdnimg.cn/blog_migrate/ee1171942b535989863c73f26d7e9498.png)
3. 一个子类的直接父亲是唯一的
,但是一个父类可以拥有很多子类
class A{}
class B extends A{}//正确
class C extends A{}//正确
![](https://i-blog.csdnimg.cn/blog_migrate/f70bf6dcface7f68048f361163c31626.png)
4. 子类不能继承父类的私有属性
-
子类会继承父类的所有东西,而修饰符只是影响属性或者方法对外是否可见。
-
Java官方文档的解释:子类不能继承父类的私有属性,但是如果子类中公有的方法影响到了父类私有属性,那么私有属性是能够被子类使用的。也就是说你不能在子类中
this.xxx
来引用父类的某private变量,但是可以通过父类的getter/setter
来影响改变它 -
Java中修饰符的作用是封装类中的属性和方法使其对外不可见,官方文档的解释很好的兼顾了Java的继承和封装。继承是为了更好的提高代码的重用性,封装则保护了代码的不可见部分。在编写代码的过程中,我们显然即想提高代码的重用性,也不希望类中的某些域被随意修改。那么这样的继承机制就很合理了。另外就生活中的例子来说,Java官方文档的解释也很契合。比如,我们不可能完全继承父母的一切(如性格等),但是父母的一些无法继承的东西却仍会深刻的影响着我们。