我一直在寻找相当长的时间,我觉得它有点复杂。类的继承和扩展有什么区别?
我的问题是在阅读ebook之后出生的,而我使用的是extends
语法,所以这让我感到奇怪。
扩展课程
class A {
a = 2;
constructor(x) {
this.a = x;
}
}
class B extends A {
}
类继承
class A {
a = 4;
A(x) {
a = x;
}
drive() {
output( "A" )
}
}
class B inherits A {
drive() {
inherited:drive()
output( "B" )
}
}
我可以在constructor
课程时使用inherits
吗?或者在扩展课程时name constructor
?
使用super
或inherited
时的差异是什么?
扩展课时我可以使用inherited
语法吗?
我读到super
是子类的构造函数引用其父类的构造函数的直接方法。
答案 0 :(得分:5)
inherits
不是ES6中的关键字。在class
声明的位置,只有extends
有效,您的语法错误。
a = 4;
在课堂上也不是inherited:drive()
。您在本书中找到的这一部分甚至明确指出“考虑这个松散的伪代码(发明的语法)用于继承的类”。
答案 1 :(得分:-1)
继承是指派生类(子类)与基类(父类)之间的关系。派生类可以根据可访问性级别使用基类中的某些方法和字段
扩展可与Inheriting互换,通常用于java(因为java中的继承语法是关键字extends。在C#中,它是冒号: