继承相关概念
-
无需重写原有类代码的基础上,就拥有类所有属性与方法,对原有类进行功能上的扩展
-
继承强调可重用
-
子类(派生类)
-
父类(超类,基类)
-
语法:class 子类 extends 父类
继承的限制
-
子类实例化前,先调用父类的构造方法,产生父类对象后再调用子类构造方法
-
Java只允许单继承,不允许多继承,但允许多层继承,即c继承b,b继承a,c拥有a的特性(单继承局限)
-
在进行继承的时候,子类会继承父类的所有结构,包括私有属性、构造方法、普通方法。
显示继承(可以直接调用):父类中的所有非私有操作
隐式继承(必须通过其他形式调用(getter和setter),不能直接调用):父类中的所有私有操作
方法覆写(重写):override
发生在有继承关系的类之中,子类定义了与父类完全相同的方法(返回值、参数列表都一样)。被覆写的方法不能拥有比父类更严格的访问控制权限。
访问控制权限:private < default < public
如何判断当前方法调用的是那个类的方法:
- 当前使用的对象是通过那个类new的
- 调用的方法是否被之类所覆写,如果被覆写,则调用的一定是子类所覆写后的方法。
方法重载和方法重写的区别:
- 概念上:重载是一个类里面相同名称不同参数的方法,重写是继承中的子类对父类方法的重新定义
- 范围上:重载在一个类里,重写在有继承关系的类里
- 权限要求:重载无,重写必须遵从被覆写的方法不能拥有比父类更严格的访问控制权限。