首先是在es6中的class,类的实例为对象,对象三大特性:封装、继承与多态。
class Animal{
constructor(name){
this.name = name
}
run(){
return `${this.name} is running`
}
}
const snake = new Animal('lily')
console.log(snake.run())
es6中的继承:
class Dog extends Animal{
bark(){
return `${this.name} is barking`
}
}
const xiaobao = new Dog('xiaobao')
console.log(xiaobao.run())
es6中的多态:
class Cat extends Animal{
static categories = ['manmal']
constructor(name){ //子类构造函数中必须用super()
super(name)
consoe.log(this.name)
}
run(){
return 'memow'+super.run() //调用父类的run函数
}
}
const maomao = new Cat('maomao')