Final Classes and Methods - Rybd04/2143-OOP GitHub Wiki
Definition
Final Classes
A class that can't have any subclasses.
Final Methods
A method that can't be overridden by any subclasses.
Explanation
Final Classes
A final class is like a person who can't have kids. They are the last of their family tree.
Final Methods
A final method is like a rule that no one can give you permission to break.
Basic Code Example
Final Classes
// A final class
class Animal final {
public:
void speak() {
std::cout << "Roar!" << std::endl;
}
};
// This would cause a compilation error:
class Dog : public Animal {
// Not allowed, because Animal is final!
};
Final Methods
// Base class
class Vehicle {
public:
virtual void start() final {
std::cout << "Vehicle started!" << std::endl;
}
};
// This will cause an error:
class Car : public Vehicle {
public:
void start() override { // Not allowed, 'start' is final in the base class!
std::cout << "Car started!" << std::endl;
}
};