面向对象 继承
继承:子类继承父类,在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,比如工人,老师
继承可将公共方法抽离出来,提高复用,减少冗余