class Animal{ //- Animal 是一个 父类 (superclass)。
    alive = true; //它有属性 alive 
    
    //它有和方法 eat() / sleep()。
    eat(){
        console.log(`This ${this.name} is eating`);
    }
    sleep(){
        console.log(`This ${this.name} is sleeping`);
    }
}
 
//然后写了子类, 这三个类都不用重复写 eat() 和 sleep(),因为它们已经从Animal继承了这些方法。
class Rabbit extends Animal{
    name = "rabbit"; //- Rabbit 继承了 Animal,所以 Rabbit 也有 alive、eat()、sleep()。
}
class Fish extends Animal{
    name = "fish"
}
class Hawk extends Animal{
    name = "hawk"
}
 
const rabbit = new Rabbit();
const fish = new Fish();
const hawk = new Hawk();
 
fish.alive = false;
 
console.log(rabbit.alive);
console.log(fish.alive);
rabbit.eat();
rabbit.sleep();

extends👉 表示这个类是另一个类的子类。