Labs ICT
Pro Login

Polymorphism

Polymorphism

Polymorphism lets different classes define methods with the same name but different behavior.

Method Overriding

A child class can override a method from its parent.

class Shape:
    def area(self):
        return 0

class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius

    def area(self):
        return 3.14 * self.radius ** 2

class Square(Shape):
    def __init__(self, side):
        self.side = side

    def area(self):
        return self.side ** 2

shapes = [Circle(5), Square(4)]
for s in shapes:
    print(s.area())
Try it Yourself →

Duck Typing

"If it walks like a duck and quacks like a duck, it's a duck." Python cares about behaviour, not type.

class Duck:
    def sound(self):
        return "Quack"

class Car:
    def sound(self):
        return "Beep"

def make_sound(obj):
    print(obj.sound())

make_sound(Duck())
make_sound(Car())
Try it Yourself →