继承的概念
继承其实是一种属性或行为的赠与,将多个事物的共有属性抽取出来放到一个独立的类中,这个独立的类与其他类产生了一种关系,就是继承关系。
继承的作用
继承的主要作用在于,在已有基础上继续进行功能的扩充。
提高代码的复用性
提高代码的维护性
为继承多态的前提条件之一
继承关键字: extends
格式:
class 子类名 extends 父类名 {}
1、将共有的属性和方法提取出来,写成一个封装类,让我们其他类去继承我们提取出来的这个类,可以优化我们的程序
2、方便我们进行代码的修改
3、减少代码量
4、将子类共有的属性和行为放到父类中
Java继承中的成员关系
成员变量:
子类的成员变量名称和父类中的成员变量名称不一样,子类的成员变量名称和父类中的成员变量名称一样
构造方法:
子类的构造方法默认会去访问父类的无参构造方法,是为了子类访问父类数据的初始化
子类通过super去明确调用带参构造,子类通过this调用本身的其他构造,但是一定会有一个去访问了父类的构造,让父类提供无参构造
成员方法:
子类的成员方法和父类中的成员方法名称不一样,子类的成员方法和父类中的成员方法名称一样
方法重写的规则
方法名相同
参数列表相同
返回值类型相同或者是其子类
访问权限不能严于父类
super关键字来访问父类的成员
super只能出现在子类的方法和构造方法中
super调用构造方法时,只能是第一句
super不能访问子类的private成员
抽象类和抽象方法
抽象类不能被实例化
可以有0~多个抽象方法
非抽象类必须重写父类的所有抽象方法
final修饰符
修饰的类,不能再被继承
修饰的方法,不能被子类重写
修饰的变量将变成常量,只能在初始化时进行赋值
1. public 想让所有类都可以调用这个方法或 属性就用它
2. protected 想让它的子类能调用这个方法或属性就用它
3. default 想让同一包中的类调用它就用它 (默认)
4. private 同一类 中才能调用