Python Inheritance

Python Inheritance Tutorial

Inheritance is an Object-Oriented Programming (OOP) concept where a child class (subclass) inherits properties and methods from a parent class (superclass). This allows code reuse and better organization.


1. Creating a Basic Inheritance

A child class inherits all methods and attributes of a parent class.

Example: Basic Inheritance

class Animal:
    def speak(self):
        return "Animals make sounds"

class Dog(Animal):  # Dog inherits from Animal
    pass

dog = Dog()
print(dog.speak())  # Output: Animals make sounds

The Dog class inherits the speak() method from Animal.


2. Method Overriding

A child class can override a method of the parent class.

Example: Overriding Methods

class Animal:
    def speak(self):
        return "Animals make sounds"

class Dog(Animal):
    def speak(self):  # Overriding the method
        return "Woof! Woof!"

dog = Dog()
print(dog.speak())  # Output: Woof! Woof!

The speak() method is redefined in the Dog class.


3. Using the super() Function

The super() function calls a method from the parent class inside the child class.

Example: Using super() to Extend Functionality

class Animal:
    def speak(self):
        return "Animals make sounds"

class Dog(Animal):
    def speak(self):
        parent_speak = super().speak()  # Calls parent method
        return parent_speak + " and Dogs bark!"

dog = Dog()
print(dog.speak())  
# Output: Animals make sounds and Dogs bark!

super() helps call methods from the parent class inside the child class.


4. Inheriting the Constructor (__init__())

A child class can use the parent class constructor using super().

Example: Constructor Inheritance

class Animal:
    def __init__(self, name):
        self.name = name

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)  # Calling parent constructor
        self.breed = breed

dog = Dog("Buddy", "Labrador")
print(dog.name)   # Output: Buddy
print(dog.breed)  # Output: Labrador

The Dog class inherits the name attribute from Animal using super().__init__().


5. Multilevel Inheritance

A child class can be a parent to another child class.

Example: Multilevel Inheritance

class Animal:
    def speak(self):
        return "Animals make sounds"

class Dog(Animal):
    def bark(self):
        return "Dogs bark"

class Puppy(Dog):
    def weep(self):
        return "Puppies weep"

puppy = Puppy()
print(puppy.speak())  # Output: Animals make sounds
print(puppy.bark())   # Output: Dogs bark
print(puppy.weep())   # Output: Puppies weep

The Puppy class inherits from Dog, which inherits from Animal.


6. Multiple Inheritance

A child class can inherit from multiple parent classes.

Example: Multiple Inheritance

class Animal:
    def speak(self):
        return "Animals make sounds"

class Bird:
    def fly(self):
        return "Birds can fly"

class Parrot(Animal, Bird):
    pass

parrot = Parrot()
print(parrot.speak())  # Output: Animals make sounds
print(parrot.fly())    # Output: Birds can fly

Parrot inherits from both Animal and Bird.


Conclusion

Inheritance allows code reusability and modularity, making it easier to build and maintain complex programs.

Share on Google Plus

About It E Research

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment