继承是面对对象三大特征之一,是Java中提供的一个关键字extends,用这个关键字,可以实现一个类和另一个类建立起继承关系。如:
public class Student extends Person {}
继承的好处:其中Student为子类,Person称为父类。
什么时候使用继承?
- 可以把多个子类中重复的代码抽取到父类中,从而提高代码的复用性
- 子类在父类的基础上,可以增加其他的功能,使子类更强大
继承的特点当类与类之间,存在相同的(共性)东西,并且满足子类是父类中的一中,就可以使用继承,优化代码,提高代码复用性。
Java只支持单继承,不支持多继承,但是支持多层继承。(一个子类只能有一个父类,但是可以有间接父类,相当于一个人只有一个亲生爸爸,不能有多个亲生爸爸,爸爸的爸爸亦是如此)
子类可以继承父类中的哪些内容?注:所有的类都间接或者直接继承于Object类(顶级父类)。
- 构造方法:非私有 不能 | private 不能
- 成员变量:非私有 能 | private 能
- 成员方法:非私有 能 | private 不能
继承中 成员变量 和 成员方法 的访问特点构造方法:由于构造方法的命名于类名必须相同,因此构造方法无法继承!(但是可以使用super调用进行访问)
成员变量:成员变量可以继承,private需要使用set和get方法。
成员方法:可以添加到虚方法表中的方法可以被继承(虚方法表:非private、非static、非final)。
成员变量:
- 就近原则:谁离我近,就调用谁
先在局部位置找,然后在本类成员位置找,再到父类的成员位置找,逐级往上找
成员方法:
- 就近原则:谁离我近,就调用谁
super调用,可以直接访问父类
方法重写:
当父类的方法无法满足子类的需求时,需要进行方法的重写
书写格式:
子类与父类中的方法声明一模一样,就称子类这个方法为重写的方法
(@Override重写注解:放在重写后的方法之上,用来校验方法的重写语法是否正确)
方法重写的本质
覆盖子类虚方法表中继承下来的父类方法
构造方法:
this、super的使用总结
- 父类中的构造方法不会被子类继承,但是可以通过super调用
- 子类的构造方法第一行,有一个默认的super();
- 子类中所有的构造方法都是默认先访问父类中的无参构造,然后再执行自己
- 如果需要使用父类中的有参构造方法,必须手动书写
this:理解为一个变量,表示当前方法调用者的地址值
super:代表父类存储空间
END以上便是继承相关笔记