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 a Vehicle

  • This increments the Vehicle counter accordingly

  • Truck class must be used the same way as specified in the constructor of the Vehicle class

  • Truck class inherits the Vehicle 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 a child-class or a sub-class of a class

  • The Vehicle class is also called a base-class or a parent-class

Last updated