20-class的继承

Posted qingshanyici

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20-class的继承相关的知识,希望对你有一定的参考价值。

1、class是如何继承的?

答:class通过extends关键字实现继承。他继承了类里面的所有属性和方法。

 

2、super关键字是什么?

答:他表示父类的构造函数,用来新建父类的this对象。

 

3、子类为什么要调用super方法?

答:子类必须在constructor方法中调用super方法,否则新建实例的时候回报错。这是因为子类没有自己的this对象,而是继承父类的this对象,然后对其进行加工。如果子类不调用super方法,子类就得不到this对象。

 

4、子类中super与this的先后顺序是怎么样的?

答:在子类的构造函数中,只有调用super之后才可以使用this关键字,否则报错。因为对子类的实例操作是基于对父类实例的加工,只有super方法才能返回父类实例。

 

5、super关键字的使用方式有哪两种?

答:super关键字既可以当做函数使用,又可以当做对象使用。

 

6、super作为函数调用时代表什么?有什么要求。

答: super作为函数调用时代表父类的构造函数,ES6要求,子类的构造函数必须执行一次super函数。

 

7、super作为函数时返回的是什么?

答: super作为函数时虽然代表的是父类的构造函数,但是返回的却是子类的实例。也就是说,子类super内部的this指向的是子类。

 

8、作为函数时,super()的位置在哪里?

答: 作为函数时,super()只能用在子类的构造函数之中,否则报错。

 

9、super作为对象时指向的是什么?

答: super作为对象时,在普通方法中指向的是父类的原型对象。在静态方法中,指向的是父类。

以上是关于20-class的继承的主要内容,如果未能解决你的问题,请参考以下文章

多继承 与 多重继承

什么是多重继承,单重继承?

C++之继承总结(继承的定义与格式,赋值转换,默认成员函数,菱形继承及菱形虚拟继承)

C++-继承-菱形继承-菱形虚拟继承-虚函数表

JSJavaScript继承 - 原型链 - 盗用构造函数 - 组合继承 -原型式继承 - 寄生式继承 - 寄生式组合继承

c++继承汇总(单继承多继承虚继承菱形继承)