Polymorphism in Python OOP
Make sure you read Part 1, Part 2, Part 3, Part 4, Part 5, Part 6 and Part 7 before you continue reading...
In practical terms, polymorphism means that if class B inherits from class A, it doesn’t have to inherit everything about class A; it can do some of the things that class A does differently (wikipedia).
Polymorphism is based on the greek words Poly (many) and morphism (forms).
Lets demonstrate polymorphism from the previous Part 7:-
Here we have two class: Cars and Bikes. Both are objects considered as Vehicles. The Cars class and the Bikes class inherit the Vehicles class. They have a activateHorn() method, which gives different output for them.
class Vehicles: def __init__(self, brand=""): self.brand = brand def activateHorn(self): pass class Cars(Vehicles): def activateHorn(self): print "Cars Horn is: Poooooooorh!" class Bikes(Vehicles): def activateHorn(self): print "Bikes Horn is: Piiiiiiiiih!" a = Vehicles() a.activateHorn() c = Cars("Toyota") c.activateHorn() d = Bikes("BMX") d.activateHorn()
If the above example isn't clear, here is another using animal objects (without inheritance).
We create two classes: Goat and Dog, both can make a distinct sound. We then make two instances and call their action using the same method.
class Goat: def sound(self): print "Meeh, meeh" class Dog: def sound(self): print "Woof, woof!" def makeSound(animalType): animalType.sound() goatObj = Goat() dogObj = Dog() makeSound(goatObj) makeSound(dogObj)
Reference Materials are here
No comments:
Post a Comment