Я создал Class Vehicle и расширил его с помощью Class Car. Однако при расширении класса я получил один и тот же вывод, используя разные способы написания constructor () и super () - см. Случаи с 1 по 4. Может ли кто-нибудь помочь мне определить различия?
Вот мой вывод:
- Случай 1 и Случай 2 идентичны. При исключении constructor () и super () по умолчанию система включает их в выполнение кода, передавая все аргументы от дочернего к родительскому классу.
- В случае 3 я создаю экземпляр класса Car, передавая значение «Mercedes» в качестве значения, а «car» переопределяет переменную
type
в классе Car. Это означает, что если я создаю экземпляр класса Car во второй раз и на этот раз передам значение «Volvo», результат будет
let car = new Car('Volvo');
console.log(car.getName() ); // This is the car's name: Volvo
console.log(car.getType() ); // car
- В случае 4 я создаю экземпляр класса Car, переопределяя два значения ('Mercedes' и 'car', обе переменные
name
и type
в классе Car. В результате, если я создаю экземпляр Класс автомобиля, на этот раз передавая значения «Volvo» и «moto», в результате console.log все равно будет отображаться Merceds и car:
let car = new Car('Volvo', 'moto');
console.log(car.getName() ); // This is the car's name: Mercedes
console.log(car.getType() ); // car
Класс
class Vehicle {
constructor (name, type) {
this.name = name;
this.type = type;
}
getName () {
return this.name;
}
getType () {
return this.type;
}
}
Удлиняет - Дело 1
class Car extends Vehicle {
getName () {
return "This is the car's name: " + super.getName();
}
}
let car = new Car('Mercedes', 'car');
console.log( car.getName() ); // This is the car's name: Mercedes
console.log( car.getType() ); // car
Удлиняет - Дело 2
class Car extends Vehicle {
constructor (name, type) {
super(name, type);
}
getName () {
return "This is the car's name: " + super.getName();
}
}
let car = new Car('Mercedes', 'car');
console.log( car.getName() ); // This is the car's name: Mercedes
console.log( car.getType() ); // car
Удлиняет - Дело 3
class Car extends Vehicle {
constructor (name) {
super(name, 'car');
}
getName () {
return "This is the car's name: " + super.getName();
}
}
let car = new Car('Mercedes');
console.log( car.getName() ); // This is the car's name: Mercedes
console.log( car.getType() ); // car
Удлиняет - Дело 4
class Car extends Vehicle {
constructor (name) {
super('Mercedes', 'car');
}
getName () {
return "This is the car's name: " + super.getName();
}
}
let car = new Car;
console.log( car.getName() ); // This is the car's name: Mercedes
console.log( car.getType() ); // car