Inheritance and Polymorphism
Inheritance:
class Vehicle:
vehicle_counter = 0
def __init__(self, body_type, make):
self.vehicle_body = body_type
self.vehicle_make = make
Vehicle.vehicle_counter += 1
def get_vehicle_count(self):
retunr Vehicle.vehicle_counter
class Truck(Vehicle):
# By specifying Vehicle in parantheses the truck class iherits the propreties of the vehicle class
# So to create a truck you would use
truck1 = Truck('big rig', 'mercedes')
truck2 = Truck('small rig', 'Chevy')
truck3 = Truck('big rig', 'toyota')
truck3.get_vehicle_count # This gets the actual count of vehicles
Based on the
Truck
class definition it is aVehicle
This increments the
Vehicle
counter accordinglyTruck
class must be used the same way as specified in the constructor of theVehicle
classTruck
class inherits theVehicle
functionality
Polymorphism (or Method Overwriting):
class Vehicle:
vehicle_counter = 0
def __init__(self, body_type, make):
self.vehicle_body = body_type
self.vehicle_make = make
Vehicle.vehicle_counter += 1
def get_vehicle_count(self):
retunr Vehicle.vehicle_counter
def drive(self):
print('vehicle driving...')
class Truck(Vehicle): # Inherits the Vehicle functionality
def drive(self): # Overwrites the drive method from the Vehicle class
print("Truck driving...") # By overwriting this prints specific instanced message instead
The
Truck
class is also called achild-class
or asub-class
of aclass
The
Vehicle
class is also called abase-class
or aparent-class
Last updated