Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Toteuta Luokkaperintä Extends- ja Super()-Avainsanoilla | JavaScript-luokkien ja Perinnän Hallinta
Edistynyt JavaScript-Osaaminen

bookHaaste: Toteuta Luokkaperintä Extends- ja Super()-Avainsanoilla

Tehtävä

Työskentelet kuljetusten hallintajärjestelmän parissa, joka seuraa erilaisia ajoneuvotyyppejä. Jokaisella ajoneuvolla on make, model ja year. Sähköajoneuvojen osalta tulee lisäksi seurata batteryCapacity-arvoa. Käytät periytymistä laajentaaksesi yleistä Vehicle-luokkaa sähköajoneuvoille.

  1. Luo ElectricVehicle-luokka, joka perii Vehicle-luokan;
  2. ElectricVehicle-konstruktori ottaa vastaan parametrit make, model, year ja batteryCapacity;
  3. Käytä super()-kutsua alustamaan make, model ja year yläluokassa;
  4. Lisää getDetails-metodi ElectricVehicle-luokkaan, joka korvaa Vehicle-luokan getDetails-metodin. Sen tulee kutsua super.getDetails() ja lisätä tiedot batteryCapacity-arvosta. Muotoilun tulee olla: "{make} {model} ({year}) with a battery capacity of {batteryCapacity} kWh.".
12345678910111213141516171819202122232425262728293031
class Vehicle { constructor(make, model, year) { this.make = make; this.model = model; this.year = year; } getDetails() { return `${this.make} ${this.model} (${this.year})`; } } class ElectricVehicle _____ _____ { _____(make, model, year, _____) { _____(_____, _____, _____); this.batteryCapacity = batteryCapacity; } _____() { return `${super._____} with a battery capacity of ${ _____._____ } kWh.`; } } // Testing const vehicle = new Vehicle('Toyota', 'Camry', 2020); console.log(vehicle.getDetails()); // Expected: Toyota Camry (2020) const electricVehicle = new ElectricVehicle('Tesla', 'Model 3', 2021, 75); console.log(electricVehicle.getDetails()); // Expected: Tesla Model 3 (2021) with a battery capacity of 75 kWh.
copy
  • Määrittele ElectricVehicle-luokka, joka perii Vehicle-luokan;
  • Lisää ElectricVehicle-konstruktorissa parametri batteryCapacity make, model ja year jälkeen;
  • Käytä super(make, model, year) kutsuaksesi yläluokan konstruktoria ja alustamaan make, model ja year;
  • Aseta batteryCapacity ominaisuudeksi ElectricVehicle-luokassa;
  • Määrittele getDetails-metodi ElectricVehicle-luokkaan, joka korvaa Vehicle-luokan getDetails-metodin;
  • getDetails-metodin sisällä käytä super.getDetails() saadaksesi yläluokan tiedot ja lisää palautettavaan merkkijonoon tieto akun kapasiteetista.
12345678910111213141516171819202122232425262728293031
class Vehicle { constructor(make, model, year) { this.make = make; this.model = model; this.year = year; } getDetails() { return `${this.make} ${this.model} (${this.year})`; } } class ElectricVehicle extends Vehicle { constructor(make, model, year, batteryCapacity) { super(make, model, year); this.batteryCapacity = batteryCapacity; } getDetails() { return `${super.getDetails()} with a battery capacity of ${ this.batteryCapacity } kWh.`; } } // Testing const vehicle = new Vehicle('Toyota', 'Camry', 2020); console.log(vehicle.getDetails()); // Output: Toyota Camry (2020) const electricVehicle = new ElectricVehicle('Tesla', 'Model 3', 2021, 75); console.log(electricVehicle.getDetails()); // Output: Tesla Model 3 (2021) with a battery capacity of 75 kWh.
copy

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 15

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain how inheritance works in this example?

What does the super() function do in the constructor?

How does method overriding work in JavaScript classes?

Awesome!

Completion rate improved to 2.22

bookHaaste: Toteuta Luokkaperintä Extends- ja Super()-Avainsanoilla

Pyyhkäise näyttääksesi valikon

Tehtävä

Työskentelet kuljetusten hallintajärjestelmän parissa, joka seuraa erilaisia ajoneuvotyyppejä. Jokaisella ajoneuvolla on make, model ja year. Sähköajoneuvojen osalta tulee lisäksi seurata batteryCapacity-arvoa. Käytät periytymistä laajentaaksesi yleistä Vehicle-luokkaa sähköajoneuvoille.

  1. Luo ElectricVehicle-luokka, joka perii Vehicle-luokan;
  2. ElectricVehicle-konstruktori ottaa vastaan parametrit make, model, year ja batteryCapacity;
  3. Käytä super()-kutsua alustamaan make, model ja year yläluokassa;
  4. Lisää getDetails-metodi ElectricVehicle-luokkaan, joka korvaa Vehicle-luokan getDetails-metodin. Sen tulee kutsua super.getDetails() ja lisätä tiedot batteryCapacity-arvosta. Muotoilun tulee olla: "{make} {model} ({year}) with a battery capacity of {batteryCapacity} kWh.".
12345678910111213141516171819202122232425262728293031
class Vehicle { constructor(make, model, year) { this.make = make; this.model = model; this.year = year; } getDetails() { return `${this.make} ${this.model} (${this.year})`; } } class ElectricVehicle _____ _____ { _____(make, model, year, _____) { _____(_____, _____, _____); this.batteryCapacity = batteryCapacity; } _____() { return `${super._____} with a battery capacity of ${ _____._____ } kWh.`; } } // Testing const vehicle = new Vehicle('Toyota', 'Camry', 2020); console.log(vehicle.getDetails()); // Expected: Toyota Camry (2020) const electricVehicle = new ElectricVehicle('Tesla', 'Model 3', 2021, 75); console.log(electricVehicle.getDetails()); // Expected: Tesla Model 3 (2021) with a battery capacity of 75 kWh.
copy
  • Määrittele ElectricVehicle-luokka, joka perii Vehicle-luokan;
  • Lisää ElectricVehicle-konstruktorissa parametri batteryCapacity make, model ja year jälkeen;
  • Käytä super(make, model, year) kutsuaksesi yläluokan konstruktoria ja alustamaan make, model ja year;
  • Aseta batteryCapacity ominaisuudeksi ElectricVehicle-luokassa;
  • Määrittele getDetails-metodi ElectricVehicle-luokkaan, joka korvaa Vehicle-luokan getDetails-metodin;
  • getDetails-metodin sisällä käytä super.getDetails() saadaksesi yläluokan tiedot ja lisää palautettavaan merkkijonoon tieto akun kapasiteetista.
12345678910111213141516171819202122232425262728293031
class Vehicle { constructor(make, model, year) { this.make = make; this.model = model; this.year = year; } getDetails() { return `${this.make} ${this.model} (${this.year})`; } } class ElectricVehicle extends Vehicle { constructor(make, model, year, batteryCapacity) { super(make, model, year); this.batteryCapacity = batteryCapacity; } getDetails() { return `${super.getDetails()} with a battery capacity of ${ this.batteryCapacity } kWh.`; } } // Testing const vehicle = new Vehicle('Toyota', 'Camry', 2020); console.log(vehicle.getDetails()); // Output: Toyota Camry (2020) const electricVehicle = new ElectricVehicle('Tesla', 'Model 3', 2021, 75); console.log(electricVehicle.getDetails()); // Output: Tesla Model 3 (2021) with a battery capacity of 75 kWh.
copy

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 15
some-alt