继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。
extands的意思是"拓展"。子类是父类的扩展。
子类 拓展 父类
例:
Student extands Person
则Person为父类,也可以叫做基类,Student为 派生类,也可以叫做子类。
Java中类只有单继承,没有多继承!
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
继承关系的两个类,一个为子
类(派生类)、一个为父类(基类)。子类继承父类,使用extands来表示。
子类和父类之间,从意义上讲应该具有"is a"的关系。
子类继承了父类,就会拥有父类的全部非私有的属性和方法!
在Java中,所有的类,都默认直接或者间接继承Object类!
Super可以调用父类非私有的方法及参数。
Super();调用父类的构造器。
在子类的构造方法中会隐式调用父类的无参构造。
若要显示调用必须放在子类构造器的第一行!
Super和this不能同时调用构造方法
super和this的区别:
代表的对象不同:
this:本身调用者 这个对象
super:代表父类对象的引用
前提
this:没有继承也可以使用
super:只能在继承条件下才可以使用
构造方法
this(); 本类的构造
super(); 父类的构造
方法重写
注意:重写都是方法的重写,与属性无关!
需要有继承关系!
方法名必须相同
参数列表必须相同
修饰符:范围可以扩大但不能缩小: public >protected>default >private
抛出的异常:范围,可以被缩小,但不能扩大:ClassNotFoundException------>
Exception(大)
Override 重写
静态方法无法被重写或重写!
方法名相同,方法体不同!
为什么需要重写:
1.父类的功能,子类不一定需要,或者不一定满足!
Alt+Insert :override;