Неактивна зіркаНеактивна зіркаНеактивна зіркаНеактивна зіркаНеактивна зірка
 

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