При вивченні будь-якої мови потрібно вирішувати безліч завдань, щоб тренувати свій мозок. Нижче описаний (може бути, не зовсім правильний) приклад простого наслідування класів в 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)
