11.4.1.4 create a class hierarchy
11.4.2.2 explain the concept of inheritance with examples
Python. Inheritance
Inheritance - the ability to use the properties and methods of the base class in a new class.
Inheritance allows you to create class hierarchies.
For example, a rectangle and a circle are special cases of a shape, and a square is a special case of a rectangle.
To describe this hierarchy in the program, you need to specify each class and its base class, and the properties which it can have.
class Shape: # base class
pass
class Circle(Shape): # class Circle is a special case of class Shape
pass
class Rectangle(Shape): # class Rectangle is a special case of class Shape
pass
class Square(Rectangle): # class Square is a special case of class Rectangle
pass
Let's describe the methods of each class
from math import pi
class Shape:
def describe(self): # method output name of class
print(f"Class: {self.__class__.__name__}")
class Circle(Shape):
def __init__(self, radius): # initialize radius of circle
self.radius = radius
def area(self): # method return area of Circle
return pi * self.radius ** 2
def perimeter(self): # method return perimeter of Circle
return 2 * pi * self.radius
class Rectangle(Shape):
def __init__(self, width, height): # initialize width, height of rectangle
self.width = width
self.height = height
def area(self): # method return area of Rectangle
return self.width * self.height
def perimeter(self): # method return perimeter of Rectangle
return 2 * (self.width + self.height)
class Square(Rectangle):
def __init__(self, size): super().__init__(size, size) # calls the __init__ method of the base class
Method super().__init__(args) passes arguments to the base class and calls __init__ method of the base class.
Questions:
Explain the term "Inheritance".
How to write class Girl based on class Pupil.
How to get a string for an object that will contain the name of its class?
Exercises:
Tasks:
Task 1.
a) Create a base Animal class. Add a voice() method to it, which prints the class name of its instance.
b) Create 2 child classes: Horse and Donkey, which extend the voice() method of their parent class so that, in addition to the name of the class, it also prints the sound that a certain animal makes.
с) Write a function animals_song(*animals) that “sings” with the voices of animal objects passed into it, and give an example of how it works.