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;
    }
};

Image

image

Additional Resources

https://en.cppreference.com/w/cpp/language/final

https://www.geeksforgeeks.org/c-final-specifier/