继承:子类继承父类,在react开发中经常见到,前端用的算多
// 父类
class People {
    constructor (name, age) {
        this.name = name
        this.age = age
    }
    eat() {
        alert(`${this.name} eat something`)
    }
    speak() {
        alert(`my name is ${this.name}, age ${this.age}`)
    }
}

/**
 * 子类继承父类,父类的人有姓名,年龄,可以吃,可以说,是个人就有这些属性
 * 人分很多种,我们用学生举例,学生也是个人,有这些基本属性,学生另外有学号,其他人没有
 * 学生另外有学习这个动作,其他人可能没有。
 */

class Student extends People{
    constructor(name, age, number) {
        super(name, age)
        this.number = number
    }
    study() {
        alert(`${this.name} study`)
    }
}

// 实例,子类既可以用自己的方法,也可以用父类的方法
let xiaoming = new Student('xiaoming', 10, 'A1')
xiaoming.study()
console.log(xiaoming.number)
xiaoming.eat() // 因为父类有eat,继承了父类

let xiaohong = new Student('xiaohong', 11, 'A2')
xiaohong.study()
xiaohong.speak()// 因为父类有speak,继承了父类

 

People是父类,公共的,不仅仅服务于Student,比如工人,老师
继承可将公共方法抽离出来,提高复用,减少冗余