Урок 25. Наслідування

Ілюстрація з відео для пояснення потреби в наслідуванні:

#Навіщо нам наслідування?
class Person:
    def __init__(self, name, surname):
        self.name = name
        self.surname = surname
        
class Student:
    def __init__(self, name, surname):
        self.name = name
        self.surname = surname
        
person1 = Person("John", "Smith")
student1 = Student("Jenny", "Jackson")
print(person1.name, person1.surname)
print(student1.name,student1.surname)

Наслідування в Python — це один з основних принципів об’єктно-орієнтованого програмування, який дозволяє створювати нові класи на основі вже існуючих. Це дозволяє повторно використовувати код, спрощує його підтримку та забезпечує більш організовану структуру. Клас, який наслідується, називається “батьківським” (або “базовим”), а новий клас, що його наслідує, — “дочірнім”. Приклад з відео:

#Inheritance (наслідування) 
#дозволяє нам визначити клас, 
#який успадковує всі методи
#та властивості з іншого класу.
#Батьківський клас — це клас, який успадковується, 
#також називається базовим класом.
#Дочірній клас - це клас, який успадковує інший клас,
#також називається похідним класом.
class Person:
    def __init__(self, name, surname):
        self.name = name
        self.surname = surname
        
class Student(Person):
    pass
        
person1 = Person("John", "Smith")
student1 = Student("Jenny", "Jackson")
print(person1.name, person1.surname)
print(student1.name,student1.surname)

Функція super()

В Python є функція super(), яка дозволяє дочірньому класу наслідувати властивості від батьківського. Приклад з відео:

#Python також має функцію super(), 
#яка змусить дочірній клас успадкувати 
#всі методи та властивості від 
#свого батьківського класу.
class Person:
    def __init__(self, name, surname):
        self.name = name
        self.surname = surname
        
class Student(Person):
    def __init__(self, name, surname, averageMark):
        super().__init__(name, surname)
        self.averageMark = averageMark
        
person1 = Person("John", "Smith")
student1 = Student("Jenny", "Jackson", 3.5)
print(person1.name, person1.surname)
print(student1.name,student1.surname, student1.averageMark)

Множинне наслідування

Множинне наслідування в Python — це можливість створення дочірнього класу, який наслідує від кількох батьківських класів одночасно. Це дозволяє об’єднувати властивості та методи декількох класів, що може бути корисним у складних системах, де потрібно інтегрувати функціональність з різних джерел. Приклад з відео:

#Python підтримує множинне наслідування
class PythonDeveloper:
    def projectPython(self):
        print("Python coding in process.")
        
class JavaDeveloper:
    def projectJava(self):
        print("Java coding in process.")
        
class PythonJavaDeveloper(PythonDeveloper, JavaDeveloper):
    pass

developer1 = PythonJavaDeveloper()
developer1.projectPython()
developer1.projectJava()

Функція isinstance()

Функція isinstance() в Python використовується для перевірки, чи є об’єкт певного типу або чи належить він до певного класу (або підкласу). Вона повертає True, якщо об’єкт є екземпляром вказаного класу або його підкласу, і False в іншому випадку. Приклад з відео:

#Функція isinstance допомагає 
#перевірити тип об'єкта
class PythonDeveloper:
    def projectPython(self):
        print("Python coding in process.")
        
class JavaDeveloper:
    def projectJava(self):
        print("Java coding in process.")
        
developer1 = JavaDeveloper()

if isinstance(developer1,PythonDeveloper):
    print("This is PythonDeveloper object.")
    
elif isinstance(developer1, JavaDeveloper):
    print("This is JavaDeveloper object.")
    
else:
    print("Unknown object type.")
Уроки 25. Уроки наслідування

В цьому відео поговоримо про наслідування (важлива концепція ООП).

Приклади на Github

Leave a Reply

Your email address will not be published. Required fields are marked *