子类继承父类的功能 **extends 父类的名称**
举例:人 ==》 男人 女人 打工人 ==》 经理 老板
父类 舅舅
```java
public class Uncle {
private String name;
private int age;
// getter setter
public void setName (String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
// 发红包
public void sendHongbao() {
System.out.println("舅舅在发红包");
}
}
```
子类:大舅
```java
public class UncleOne extends Uncle{
public void chouyan(){
System.out.println("大舅喜欢抽烟");
}
}
```
子类:二舅
```java
public class UncleTwo extends Uncle{
public void drinkWine() {
System.out.println("二舅喜欢喝酒");
}
}
```
**子类只能继承自一个父类,不能继承多个父类** 多重继承(不允许)
```java
// 错误代码
public class UncleThree extends Uncle , UncleOne{
}
```
子类 多层继承
```java
// 多层继承
public class UncleOneSon extends UncleOne{
}
```
# 在继承中类加载的顺序
先创建父类,再创建子类
父类的构造方法先于子类的构造方法调用
```java
public UncleOne() {
super(); // 调用父类的构造方法
System.out.println("子类大舅的构造方法被创建了");
}
```
# 方法的复写(覆写)override
```java
@Override
public void sendHongbao() {
System.out.println("大舅家道中落,红包只有1毛钱");
}
```
如果子类没有复写父类的方法,调用的是父类的
如果复写了父类的方法,在调用时优先调用子类复写后的方法
**要求**
1 方法的签名完全一致
2 方法体不同
# Final
1 修饰的内容不可以发生改变
1.1 修饰的是基本数据类型,其值不可以发生改变
1.2 修饰的是引用数据类型,引用的地址不能发生改变(不能指向新的空间),但是原本引用的空间中的值是可以发生修改的