01 11Java中级之继承的定义与使用

1 继承问题引出

如果现在让我们实现简单Java类,一个Person类和一个学生类,那么在学生是不是人,如果是,那么其中代码我们就没有做到复用,所以这时候应该使用继承来实现,让学生类继承Person类,然后再Person类的基础上进行扩充。

2 继承的实现

Java中实现继承使用extends关键字,格式如下:
class 子类 extends 父类 {}
父类有时被称为超类,子类有时被称为派生类。

继承实现的主要目的在于子类可以重用父类中的结构,并且可以实现功能的扩充。子类可以扩充更多的内容,并且描述的范围更小。

3 子类对象实例化流程

即使没有进行父类对象实例化,也会由系统自动调用父类的构造方法(实例化父类对象),所以子类对象实例化流程里面会自动实例化父类对象。相当于子类构造方法中隐含了一个super()。

super()表示的就是子类构造调用父类构造的语句,该语句只允许放在子类构造方法的首行。在默认情况下,子类只会调用父类中的无参构造方法,有无super()区别不大。但是如果父类没有明确定义无参构造方法,必须利用super()明确调用有参构造。

结论:无论你如何折腾,在实例化子类对象的同时一定会实例化父类对象。目的是为了所有属性可以进行空间分配。

4 继承的相关限制

  1. Java之中不允许多重继承,只允许多层继承。
    (1)范围限定在同一类。
    (2)多层继承有限度,理论上不应该超过三层。
  2. 在进行继承关系定义的时候,实际上子类可以继承父类中所有的操作结构。对是对于私有操作属于隐式继承,而所有的非私有操作属于显式继承。
发布了77 篇原创文章 · 获赞 11 · 访问量 2667

猜你喜欢

转载自blog.csdn.net/weixin_43762330/article/details/104504972