extends 关键字

继承允许一个类(子类)获得另一个类(父类)的属性和方法。Java 使用 extends 关键字实现继承。

Animal.java(父类)
public class Animal {
    protected String name;
    protected int age;

    public void eat() {
        System.out.println(name + "正在吃东西");
    }

    public void sleep() {
        System.out.println(name + "正在睡觉");
    }
}
Dog.java(子类)
// 使用 extends 继承父类
public class Dog extends Animal {
    private String breed;

    public void bark() {
        System.out.println(name + "汪汪叫!");
    }

    // 重写(Override)父类方法
    @Override
    public void eat() {
        System.out.println(name + "正在吃狗粮");
    }

    // 使用 super 调用父类方法
    public void showInfo() {
        super.eat();  // 调用父类的 eat()
        System.out.println("品种:" + breed);
    }
}
使用继承
Dog dog = new Dog();
dog.name = "旺财";  // 继承自 Animal
dog.eat();      // 调用 Dog 重写的方法
dog.sleep();    // 调用 Animal 的方法
dog.bark();     // 调用 Dog 特有的方法
⚠️ 继承规则

1. Java 只支持单继承,一个类只能有一个直接父类
2. 子类可以重写父类方法,使用 @Override 注解
3. 使用 super 关键字可以调用父类的方法或构造器
4. 构造方法不会被继承,但子类构造器会默认调用父类无参构造器

课后练习

关于 Java 继承,以下说法正确的是?

A 一个类可以继承多个父类
B 子类可以重写父类的方法
C 子类无法访问父类的 protected 成员
D 父类引用可以直接调用子类特有的方法