Наслідування дозволяє створити новий клас на основі існуючого.
Дочірній клас отримує всі атрибути та методи батьківського, і може:
• Додавати нові атрибути та методи
• Перевизначати методи батька
super() — виклик методу батьківського класу.
Переваги:
• Повторне використання коду
• Розширення функціональності без дублювання
• Логічна ієрархія (Тварина -> Собака -> Пудель)
💡 Приклад коду
Вивід:
📝 ЗАВДАННЯ (3)
1.
Завдання 1: Ієрархія фігур
10 XP
Створіть клас Shape з методом area(), що повертає 0. Створіть дочірні класи Rectangle та Circle з правильним розрахунком площі.
💡 Підказка: import math та використовуйте math.pi для кола
🔓 Розв'язок:
import math
class Shape:
def area(self): return 0
class Rectangle(Shape):
def __init__(self, w, h):
self.w, self.h = w, h
def area(self): return self.w * self.h
class Circle(Shape):
def __init__(self, r):
self.r = r
def area(self): return math.pi * self.r ** 2
print(Rectangle(4, 5).area())
print(f'{Circle(3).area():.2f}')
Вивід:
2.
Завдання 2: Ієрархія тварин
20 XP
Створіть базовий клас Animal з атрибутами name та age, методом info(). Створіть дочірні класи Dog та Cat. Dog має додатковий метод fetch() (принести м'яч), Cat — метод purr() (муркотіти). У кожного свій звук у методі speak(). Створіть по 2 об'єкти кожного класу та продемонструйте всі методи.
💡 Підказка: У дочірніх класах викликайте super().__init__(name, age) для ініціалізації батьківських атрибутів. Додайте свої методи та перевизначте speak().
Створіть базовий клас Employee з атрибутами name та base_salary. Створіть дочірні класи Manager (має бонус у відсотках) та Developer (має кількість проєктів, за кожний +5000). Кожен клас перевизначає метод total_salary(). Створіть по парі об'єктів та виведіть зарплату кожного.
💡 Підказка: У Manager: total_salary = base_salary * (1 + bonus/100). У Developer: total_salary = base_salary + projects * 5000. Використовуйте super().__init__() у дочірніх класах.