1.什么是继承?
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
2.使用继承的好处
通过子类继承父类,可以:
- 提高代码的复用性,减少重复代码的使用;
- 提高代码的可维护性;
- 对父类功能进行扩充。
3.继承的实现方式
使用extends关键字实现类与类之间的继承,类与类之间的继承是单继承,即一个子类只能拥有一个父类。
使用implements关键字实现接口之间的继承,接口之间的继承可以是多继承,即一个接口可以继承多个接口。
4.继承的注意事项
- Java只的类支持单继承,不支持多继承 ,但是可以多重继承,即A类继承B类,B类继承C类,也就是说B是A的父类,C是B的父类;
- 子类拥有父类非 private 的属性、方法,但是可以通过get和set方法继承私有属性;
- 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展;
- 子类不能继承父类的构造器(构造方法或者构造函数),但是可以通过super关键字使用父类构造方法;
- 如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表;
- 子类继承父类,子类构造方法第一行默认调用父类无参构造,子类构造方法第一行只能调用一次父类构造;
- 子类中出现了和父类中一模一样的方法声明,也被称为方法覆盖,方法复写。
5.资源加载
- 想要使用类中的成员,就要先加载类,加载类就要加载类中的静态资源,静态资源包括静态成员变量、静态成员方法、静态代码块,他们没有优先级之分,按顺序加载;
- 创建对象,要使用类中的构造方法,使用构造方法要先执行类中的构造代码块,再调用构造方法,这是可以多次执行的;
- 方法参数列表如果是基本数据类型,实际传的就是值;如果是引用数据类型,实际传的就是该类的对象或是子类对象;
- 静态资源只能使用静态资源,普通资源可以使用静态资源和普通资源。
6.代码示例
父类代码展示:
子类代码展示:
测试类代码展示:
运行结果展示:
当子类使用super关键字调用父类构造方法时:
此时运行结果与之前相同,可知如果不使用super关键字调用父类的无参构造,则会默认调用。
7.资源加载顺序代码示例
父类代码:
子类代码:
运行结果: