类的继承和扩展有什么区别?

时间:2016-02-11 11:01:44

标签: javascript ecmascript-6

我一直在寻找相当长的时间,我觉得它有点复杂。类的继承和扩展有什么区别?

我的问题是在阅读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

使用superinherited时的差异是什么?

扩展课时我可以使用inherited语法吗? 我读到super是子类的构造函数引用其父类的构造函数的直接方法。

2 个答案:

答案 0 :(得分:5)

inherits不是ES6中的关键字。在class声明的位置,只有extends有效,您的语法错误。

a = 4;在课堂上也不是inherited:drive()。您在本书中找到的这一部分甚至明确指出“考虑这个松散的伪代码(发明的语法)用于继承的类”。

答案 1 :(得分:-1)

继承是指派生类(子类)与基类(父类)之间的关系。派生类可以根据可访问性级别使用基类中的某些方法和字段

扩展可与Inheriting互换,通常用于java(因为java中的继承语法是关键字extends。在C#中,它是冒号: