📖 Scenario: You are creating a simple program to manage different types of vehicles. Each vehicle has a brand and a method to display its details. Cars are a special type of vehicle that also have a number of doors.
🎯 Goal: Build a MATLAB class inheritance example where a Car class inherits from a Vehicle class. You will create the base class, add a subclass, and then display information about a car.
📋 What You'll Learn
Create a base class Vehicle with a property brand and a method displayInfo that prints the brand.
Create a subclass Car that inherits from Vehicle and adds a property numDoors.
Override the displayInfo method in Car to print both brand and number of doors.
Create an object of class Car and call its displayInfo method.
💡 Why This Matters
🌍 Real World
Inheritance helps organize code when you have related objects, like different types of vehicles sharing common features but also having unique details.
💼 Career
Understanding inheritance is important for software development jobs that involve object-oriented programming, making code easier to maintain and extend.
Progress0 / 4 steps
1
Create the base class Vehicle
Create a MATLAB class called Vehicle with a public property brand and a method displayInfo that prints the brand using fprintf. Use classdef Vehicle syntax.
MATLAB
Hint
Use classdef Vehicle to start the class. Define brand inside properties. Create a constructor method to set brand. Use fprintf in displayInfo.
2
Create the subclass Car inheriting Vehicle
Create a MATLAB class called Car that inherits from Vehicle. Add a public property numDoors. Create a constructor that accepts brand and numDoors and calls the superclass constructor for brand.
MATLAB
Hint
Use classdef Car < Vehicle to inherit. Add numDoors in properties. In constructor, call obj@Vehicle(brand) to set brand.
3
Override displayInfo method in Car
In the Car class, override the displayInfo method to print both the brand and the number of doors using fprintf. Use obj.brand and obj.numDoors.
MATLAB
Hint
Define displayInfo method inside Car class. Use fprintf to print brand and numDoors.
4
Create Car object and display info
Create an object myCar of class Car with brand 'Toyota' and 4 doors. Call myCar.displayInfo() to print the details.
MATLAB
Hint
Create myCar using Car('Toyota', 4). Call myCar.displayInfo() to show details.
Practice
(1/5)
1. What does inheritance allow a subclass to do in MATLAB?
easy
A. Change MATLAB's built-in functions
B. Use properties and methods from a parent class
C. Run code without a main function
D. Create variables without declaring them
Solution
Step 1: Understand inheritance concept
Inheritance means a subclass can use code from a parent class.
Step 2: Identify what subclass gains
The subclass gets properties and methods from the parent class automatically.
Final Answer:
Use properties and methods from a parent class -> Option B
Quick Check:
Inheritance = reuse parent code [OK]
Hint: Inheritance means reuse parent class code [OK]
2. Which of the following is the correct way to declare a subclass Dog that inherits from superclass Animal in MATLAB?
easy
A. classdef Dog inherits Animal
B. classdef Dog : Animal
C. classdef Dog extends Animal
D. classdef Dog < Animal
Solution
Step 1: Recall MATLAB inheritance syntax
MATLAB uses < symbol to indicate inheritance in classdef.
Step 2: Match correct syntax
The correct syntax is classdef Dog < Animal.
Final Answer:
classdef Dog < Animal -> Option D
Quick Check:
Inheritance uses < in MATLAB [OK]
Hint: Use < to inherit in MATLAB classdef [OK]
Common Mistakes:
Using 'inherits' keyword instead of <
Using ':' or 'extends' which are not MATLAB syntax
Confusing MATLAB syntax with other languages
3. Consider the following MATLAB code:
classdef Animal
methods
function sound(obj)
disp('Some sound')
end
end
end
classdef Dog < Animal
methods
function sound(obj)
disp('Bark')
end
end
end
myPet = Dog();
myPet.sound();
What will be the output when running myPet.sound()?
medium
A. Error: Method not found
B. Some sound
C. Bark
D. No output
Solution
Step 1: Understand method overriding in subclass
The subclass Dog defines its own sound method, which replaces the superclass method.
Step 2: Determine which method runs
Calling myPet.sound() runs the Dog version, printing 'Bark'.
4. What is wrong with this MATLAB subclass definition?
classdef Cat <
methods
function meow(obj)
disp('Meow')
end
end
end
medium
A. Missing superclass name after <
B. Method name cannot be 'meow'
C. Classdef keyword is misspelled
D. No constructor defined
Solution
Step 1: Check inheritance syntax
The symbol < must be followed by the superclass name.
Step 2: Identify missing superclass
Here, no superclass name is given after <, causing syntax error.
Final Answer:
Missing superclass name after < -> Option A
Quick Check:
Inheritance requires superclass name after < [OK]
Hint: Always specify superclass name after < [OK]
Common Mistakes:
Leaving out superclass name after <
Thinking method names cause error
Assuming constructor is mandatory
5. You have a superclass Vehicle with a method move() that prints 'Moving'. You want to create a subclass Car that inherits Vehicle but adds a new method honk() that prints 'Beep!'. Which of the following is the correct MATLAB code for the subclass Car?
hard
A. classdef Car < Vehicle
methods
function honk(obj)
disp('Beep!')
end
end
end
B. classdef Car inherits Vehicle
methods
function honk(obj)
disp('Beep!')
end
end
end
C. classdef Car : Vehicle
methods
function honk(obj)
disp('Beep!')
end
end
end
D. classdef Car extends Vehicle
methods
function honk(obj)
disp('Beep!')
end
end
end
Solution
Step 1: Use correct inheritance syntax
MATLAB uses < to inherit, so classdef Car < Vehicle is correct.
Step 2: Add new method in subclass
The method honk is added inside methods block correctly.
Final Answer:
classdef Car < Vehicle with honk method -> Option A
Quick Check:
Subclass syntax + new method = classdef Car < Vehicle
methods
function honk(obj)
disp('Beep!')
end
end
end [OK]
Hint: Use < and add methods block for new methods [OK]
Common Mistakes:
Using 'inherits', ':', or 'extends' instead of <
Forgetting to add methods block
Trying to override without correct syntax
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.