📖 Scenario: Imagine you are creating a simple program to manage vehicles. You want to keep common features in a general vehicle class and add specific features for cars.
🎯 Goal: You will build two classes: a Vehicle class and a Car class that inherits from Vehicle. You will then create a car object and display its details.
📋 What You'll Learn
Create a Vehicle class with a constructor that takes make and year.
Create a Car class that inherits from Vehicle and adds a model property.
Create an instance of Car with specific values for make, year, and model.
Print the car's details using a method.
💡 Why This Matters
🌍 Real World
Inheritance helps organize code by sharing common features in a base class and adding specific features in child classes. This is useful in many programs like games, business apps, and simulations.
💼 Career
Understanding inheritance is important for software development jobs because it helps write clean, reusable, and organized code.
Progress0 / 4 steps
1
Create the Vehicle class
Create a class called Vehicle with a constructor that takes make and year as parameters and assigns them to this.make and this.year.
Javascript
Hint
Use class keyword to create the class and constructor method to set properties.
2
Create the Car class that inherits Vehicle
Create a class called Car that extends Vehicle. Add a constructor that takes make, year, and model. Call super(make, year) and assign model to this.model.
Javascript
Hint
Use extends to inherit and super() to call the parent constructor.
3
Create a Car object
Create a variable called myCar and assign it a new Car object with make as "Toyota", year as 2020, and model as "Corolla".
Javascript
Hint
Use new Car(...) to create the object with the exact values.
4
Print the car details
Add a method called getDetails inside the Car class that returns a string like "Toyota 2020 Corolla" using this.make, this.year, and this.model. Then, print the result of myCar.getDetails().
Javascript
Hint
Use a method that returns a string with all properties and print it with console.log.
Practice
(1/5)
1.
What does the extends keyword do in JavaScript classes?
easy
A. It makes one class inherit properties and methods from another class.
B. It creates a new instance of a class.
C. It defines a private method inside a class.
D. It deletes a class from memory.
Solution
Step 1: Understand the role of extends
The extends keyword is used to create a child class that inherits from a parent class.
Step 2: Identify inheritance behavior
This means the child class gets all properties and methods of the parent class automatically.
Final Answer:
It makes one class inherit properties and methods from another class. -> Option A
Quick Check:
extends means inheritance [OK]
Hint: Remember: extends means 'inherits from' [OK]
Common Mistakes:
Confusing extends with creating instances
Thinking extends deletes classes
Mixing extends with private methods
2.
Which of the following is the correct syntax to create a child class Dog that inherits from a parent class Animal?
?
easy
A. class Dog extends Animal {}
B. class Dog inherits Animal {}
C. class Dog : Animal {}
D. class Dog Animal extends {}
Solution
Step 1: Recall JavaScript inheritance syntax
JavaScript uses class Child extends Parent {} to inherit.
Step 2: Match syntax to options
Only class Dog extends Animal {} matches the correct syntax: class Dog extends Animal {}.
Final Answer:
class Dog extends Animal {} -> Option A
Quick Check:
Correct syntax uses extends [OK]
Hint: Use 'extends' keyword to inherit classes [OK]
Common Mistakes:
Using 'inherits' instead of 'extends'
Using ':' like other languages
Wrong order of keywords
3.
What will be the output of this code?
class Animal {
speak() {
return "Animal sound";
}
}
class Dog extends Animal {
speak() {
return "Bark";
}
}
const pet = new Dog();
console.log(pet.speak());
medium
A. undefined
B. "Animal sound"
C. "Bark"
D. Error: speak is not a function
Solution
Step 1: Understand method overriding in child class
The Dog class overrides the speak method from Animal to return "Bark".
Step 2: Check which method is called
When pet.speak() is called, it uses the Dog version, so it returns "Bark".
Final Answer:
"Bark" -> Option C
Quick Check:
Child method overrides parent method [OK]
Hint: Child method replaces parent method if same name [OK]
Common Mistakes:
Expecting parent method output
Thinking both methods run
Confusing method names
4.
Find the error in this code and choose the fix:
class Animal {
constructor(name) {
this.name = name;
}
}
class Dog extends Animal {
constructor(name) {
this.name = name;
}
}
medium
A. Add extends Animal to Dog class.
B. Add super(name); as the first line in Dog's constructor.
C. Change this.name to super.name in Dog's constructor.
D. Add super(name); as the last line in Dog's constructor.
Solution
Step 1: Identify constructor error in child class
In JavaScript, a child class constructor must call super() before using this.
Step 2: Fix by calling super(name);
Adding super(name); as the first line in Dog's constructor calls the parent constructor properly.
Final Answer:
Add super(name); as the first line in Dog's constructor. -> Option B
Quick Check:
Call super() before this in child constructor [OK]
Hint: Always call super() first in child constructor [OK]
Common Mistakes:
Using this before super()
Forgetting to call super()
Trying to access super.name directly
5.
Given these classes, what will console.log(cat.describe()); print?
class Animal {
constructor(name) {
this.name = name;
}
describe() {
return `This is an animal named ${this.name}`;
}
}
class Cat extends Animal {
constructor(name, color) {
super(name);
this.color = color;
}
describe() {
return `${super.describe()} and its color is ${this.color}`;
}
}
const cat = new Cat("Whiskers", "black");
console.log(cat.describe());
hard
A. "This is an animal named Whiskers"
B. Error: super.describe is not a function
C. "This is a black animal named Whiskers"
D. "This is an animal named Whiskers and its color is black"
Solution
Step 1: Understand super method call in child
The Cat class calls super.describe() to get the parent description.
Step 2: Combine parent and child descriptions
The child adds its color info, so the full string is "This is an animal named Whiskers and its color is black".
Final Answer:
"This is an animal named Whiskers and its color is black" -> Option D
Quick Check:
super.method() adds parent info in child method [OK]
Hint: Use super.method() to extend parent method output [OK]
Common Mistakes:
Ignoring super.describe() call
Expecting only child or parent text
Thinking super.describe is undefined
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.