При вивченні будь-якої мови потрібно вирішувати безліч завдань, щоб тренувати свій мозок. Нижче описаний (може бути, не зовсім правильний) приклад простого наслідування класів в Python.
Спадкування класів в Python якщо коротко — додавання в клас-нащадок методів батьківського (базового) класу. Спадкування і поліморфізм є одним з основних принципів ООП (об'єктно-орієнтованого програмування). Втім, теорію можна завжди почитати на офіційних джерелах. Без теорії нікуди, як і без практики, власне.
Даний простий приклад показує, як один клас може успадковувати метод іншого класу шляхом звернення до нього. Все дуже просто і зрозуміло. У завданні потрібно було реалізувати простий приклад наслідування методів з іншого класу: написати один загальний клас для всіх машин з загальними полями, а також кілька класів зі специфічними полями, а потім вивести окремо кожну машину з характеристиками загальними (з першого класу) і специфічними (з класу саме даної марки машин).
Приклад успадкування класів в Python
Крок 1. Спочатку потрібно створити клас для всіх машин з загальними полями, прописати метод (для виведення інформації про всі машини і створити екземпляр класу. Виводимо інформацію загальних полів шляхом звернення до методу класу.
class Avto: def carAvto(self): print(color, kuzov) color="blue" kuzov="sedan" auto=Avto() Avto.carAvto(auto)
Крок 2. Тепер створюємо клас машин Мерседес зі спеціальними полями. Також прописуємо метод для виведення потрібної інформації. Створюємо екземпляр класу і виводимо інформацію про машини Мерседес шляхом звернення до методу класу.
class Mersedes: def carMersedes(self): print(nameMers, countMers) nameMers="Mersedes" countMers=15 mers=Mersedes() Mersedes.carMersedes(mers)
Крок 3. Аналогічно класу Мерседес прописуємо клас для машин Ауді.
class Audi: def carAudi(self): print(nameAudi, countAudi) nameAudi="Audi" countAudi=22 audi=Audi() Audi.carAudi(audi)
Крок 4. Створюємо новий клас, який буде мати загальні поля класу Авто і спеціальні поля класу Мерседес шляхом звернення до даних класів, створюючи при цьому обов'язково екземпляр класу. Для виведення інформації з інших класах звертаємося безпосередньо до їхніх методів.
class Avtomers(Avto, Mersedes): pass carsMers=Avtomers() print("-----------------") Avtomers.carAvto(carsMers) Avtomers.carMersedes(carsMers)
Шаг 5. Аналогично прописываем код для выведения общих и специфичных полей для класса Ауди.
class Avtoaudi(Avto, Audi): pass carsAudi=Avtoaudi() print("-----------------") Avtoaudi.carAvto(carsAudi) Avtoaudi.carAudi(carsAudi)
В цілому, якщо скласти всі шматки коду, повинен вийти наступний простенький приклад:
class Avto: def carAvto(self): print(color, kuzov) color="blue" kuzov="sedan" auto=Avto() Avto.carAvto(auto) class Mersedes: def carMersedes(self): print(nameMers, countMers) nameMers="Mersedes" countMers=15 mers=Mersedes() Mersedes.carMersedes(mers) class Audi: def carAudi(self): print(nameAudi, countAudi) nameAudi="Audi" countAudi=22 audi=Audi() Audi.carAudi(audi) class Avtomers(Avto, Mersedes): pass carsMers=Avtomers() print("-----------------") Avtomers.carAvto(carsMers) Avtomers.carMersedes(carsMers) class Avtoaudi(Avto, Audi): pass carsAudi=Avtoaudi() print("-----------------") Avtoaudi.carAvto(carsAudi) Avtoaudi.carAudi(carsAudi)