Explain Inheritance in Python with an example.

As Python follows an object-oriented programming paradigm, classes in Python have the ability of inheriting the properties of another class. This process is known as inheritance. Inheritance provides the code reusability feature. 

The class that is being inherited is called a super-class and the class that inherits the other class is called a derived or child class. 

Following types of inheritance are supported in Python:

  • Single inheritance: When a class inherits only one super class.
  • Multiple inheritance: When a class inherits multiple super classes.
  • Multilevel inheritance: When a class inherits a super class and then another class inherits this derived class forming a parent, child, and grandchild class structure.
  • Hierarchical inheritance: When one super class is inherited by multiple derived classes.