在上篇文章中《面向对象的继承》也就是ES5中的构造函数继承,上一篇文章详细了介绍的构造函数的继承方式,在本篇文章中,将继续介绍继承,ES6的继承。
在ES6中,引入了类的概念 关键字Class。
我们通过class关键字创建一个类,取名为Person类,在该类中有一个构造函数constructor(){}
在构造函数内部为该类的属性。在该类中也有一个方法,需要注意:类中的方法不要写在构造函数中。以上文字介绍为描述语法格式,下面以代码形式展示出来。
接下来我们在创建另外一个类,使这个类继承上面代码Person中的属性和方法,此时又引出一个关键字extents 当我们实例化创建的当前这个类的时候,能调用person中的方法,extents关键字只能继承父类中的方法,而属性没有继承过来,代码块如下图所示:
打印结果
那么该如何继承person类中的name及age属性呢?假设我们的student类也有自己的属性呢?
此时如果想把Person类中的属性也继承过来,则需要使用关键字super(),代码块如下所示:
上面代码中的第三个属性 this.grade是属于自己新增的,上面代码就实现了属性上的继承,extents就实现了原型上的继承。
在es6继承中,还有一个疑问,方法覆盖该怎么操作呢?
只需要在子类中写与重复的方法名即可,代码如下图所示:
如果还有需求,即使子类中方法覆盖了父类的方法,我们也想将父类中的say方法执行一下,该怎么操作呢 ?同样滴使用super(),代码块如下所示:
以上就是本文讲解的ES6中的继承。