如何在Javascript中重写基类构造函数

埃德温

Udacity ES6培训有一个关于重写基类构造函数的问题。我有一个解决方案,但Udacity不允许我放弃它。

分配是:创建扩展Vehicle类的Bicycle子类。Bicycle子类应通过将车轮的默认值从4更改为2,将喇叭的默认值从“哔哔”更改为“鸣喇叭”来覆盖Vehicle的构造函数。

class Vehicle {
    constructor(color = 'blue', wheels = 4, horn = 'beep beep') {
        this.color = color;
        this.wheels = wheels;
        this.horn = horn;
    }

    honkHorn() {
        console.log(this.horn);
    }
}

// your code here


/* tests
const myVehicle = new Vehicle();
myVehicle.honkHorn(); // beep beep
const myBike = new Bicycle();
myBike.honkHorn(); // honk honk
*/

我想出的解决方案是:

class Bicycle extends Vehicle {
    constructor(wheels, horn){
        super(wheels, horn)
        this.wheels = 2
        this.horn = "honk honk" 
    }

    honkHorn(){
        super.honkHorn()
    }

}

但这还不够好,我也不知道为什么。我得到的反馈是:

您的Bicycles构造函数未设置颜色,车轮和喇叭的默认值

THE_

你不应该使用

    this.wheels = 2
    this.horn = "honk honk" 

当已经在超级构造函数中覆盖它们时。

class Vehicle {
	constructor(color = 'blue', wheels = 4, horn = 'beep beep') {
		this.color = color;
		this.wheels = wheels;
		this.horn = horn;
	}

	honkHorn() {
		console.log(this.horn);
	}
}

class Bicycle extends Vehicle {
	constructor(wheels = 2, horn = 'honk honk') {
		super(undefined, wheels, horn);
	}

	honkHorn() {
		super.honkHorn()
	}

}

let by = new Bicycle();
by.honkHorn();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我应该如何重写代码,以便Spring自动将组件注入类构造函数中?

如何在多级继承中调用基类构造函数?

基类构造函数在Java中调用重写方法时派生类对象的状态

Java。如何使用私有构造函数重写类中的方法

如何在派生类构造函数中初始化基类成员变量?

如何在模板派生类中调用模板基类的构造函数?

从超类构造函数调用基类重写方法

C ++:在基类的构造函数中调用重写的方法

Javascript类:如何在父类代码中访问重写的父类函数

如何重写Javascript类中的函数并调用基本函数

如何在派生构造函数中初始化从基类继承的向量

Javascript:在派生类中重写之前如何调用基类函数?

类构造函数:如何在列表中设置默认类

如何在基类中调用“移动”“ &&”构造函数?在C ++中

如何在Javascript的类构造函数中访问分配给对象的变量名?

在基类构造函数中对派生类使用重写函数

Javascript基类构造函数以子类(重写)属性运行

如何在C ++中从基类构造函数调用派生类方法?

如何在Scala中从派生类辅助构造函数调用辅助基类构造函数?

基类中的重写函数

如何在jquery中重写javascript函数?

我如何在扩展类构造函数中调用抽象类的构造函数

如何在javascript es6类构造函数中声明一个对象

如何在基类构造函数中为每个子类执行特定任务

如何在C++中调用父类的重写函数?

如何在 CQRS .NET Core 中使用基处理程序类解决构造函数中的注入

如何在继承自基类需要注入服务的基类的类中编写类构造函数?

如何在 JavaScript 的构造函数中使用类变量?

如何让子类中的构造函数继承构造函数或基类?