Вступ до обʼєктно-орієнтованого програмування в Python
George Boorman
Curriculum Manager, DataCamp



$$\Large{\text{Функціонал нового класу = функціонал старого класу + додаткове}}$$




class BankAccount: def __init__(self, balance): self.balance = balance def withdraw(self, amount): self.balance -= amount# Class inheriting from BankAccount class SavingsAccount(BankAccount): pass
BankAccount: Батьківський клас, чий функціонал розширюють/успадковують SavingsAccount: Дочірній/підклас, що успадкує функціонал і додасть більше# Конструктор успадкований від BankAccount
savings_acct = SavingsAccount(1000)
type(savings_acct)
__main__.SavingsAccount
# Атрибут успадкований від BankAccount
savings_acct.balance
1000
# Метод успадкований від BankAccount
savings_acct.withdraw(300)
SavingsAccount — це BankAccount
(можливо, з додатковими можливостями)
savings_acct = SavingsAccount(1000)
isinstance(savings_acct, SavingsAccount)
True
isinstance(savings_acct, BankAccount)
True
acct = BankAccount(500)
isinstance(acct, SavingsAccount)
False
isinstance(acct, BankAccount)
True
Вступ до обʼєктно-орієнтованого програмування в Python