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

What is a difference between inherits and extends of classes?

本文关键字:什么 区别 扩展 继承      更新时间:2023-09-26

我一直在寻找asnwer,我发现它有点复杂。类的继承和扩展有什么区别?

的问题是在阅读这本电子书后产生的,我正在使用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" )
    }
}

我可以在inherits类时使用constructor吗?或者在扩展类时name constructor

使用superinherited时有什么区别?

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

inherits不是

ES6 中的关键字。在class声明的那个位置,只有extends有效,你有一个语法错误。

既没有a = 4;在类机构中,也没有inherited:drive().你在书中发现这一点的部分甚至明确指出"考虑这个松散的伪代码(发明的语法)用于继承的类"。

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

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