继承
1 概述
Java中只有单继承
- 继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等
- 继承关系的2个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends
2 实例

PS:
- 一般属性才会私有,方法不会
- ctrl+h 打开继承树
- Java中,所有的类,都默认直接或间接继承Object类
3 super
java中的 super 关键字是一个引用变量,用于引用 直接父类对象。
3.1 调用属性
Student.java
package com.oop;
//Student 类
public class Student extends Person {
private String name = "student";
public void speak(String name){
System.out.println(name);//jerry
System.out.println(this.name);//student
System.out.println(super.name);//调用父类name属性
}
}
运行效果图:

3.2 调用方法
Student.java
package com.oop;
//Student 类
public class Student extends Person {
private String name = "student";
public void speak(String name){
System.out.println(name);//jerry
System.out.println(this.name);//student
System.out.println(super.name);//父类name属性
}
public void test(){
print();//Student_print
this.print();//Student_print
super.print();//Person_print
}
public void print(){
System.out.println("Student_print");
}
}

PS:父类私有的子类无法继承。私有方法,私有属性。
3.3 构造方法
在创建对象时,构造方法被自动调用,用于初始化。

PS:
- 显式 调用父类的构造器 super() 构造必须放在第一行。
- 子类默认调用父类的构造方法
3.3.1 无参构造问题
- 父类不存在无参构造,子类会报错。
- 如果自定了有参构造,必须要显示写上无参构造--除非子类调用父类的有参构造
4 方法重写
方法重载和重写不一样
- 方法重载:方法名相同,参数列表不同
4.1 带 static 关键字

PS:这里并不是方法的重写。
4.2 去除static关键字

PS:
- 这里是方法的重写
- B.java 旁边 O 代表重载,
4.3 IDE 自动生成
快捷键:alt+insert

5 总结
5.1 super
- super调用父类的构造方法,必须放在构造方法第一行
- super 必须只能出现在子类 的方法或者构造方法中
- super 和 this 不能同时调用构造方法!
5.2 this VS super
5.2.1 代表对象
- this:本身调用者这个对象
- super:父类对象的引用
5.2.2 使用条件:
- this:没有对象也可以使用
- super:只能在继承条件才可以使用
5.2.3 构造方法
- this():本类的构造
- super():父类的构造!
5.3 方法重写
重写需要有继承关系,子类重写父类的方法!
- 方法名、参数列表必须相同
- 修饰符:范围可以扩大但不能缩小: public > Protected > Default > private
- 抛出的异常:范围,可以缩小,但不能扩大: ClassNotFoundException ---> Exception

浙公网安备 33010602011771号