Kế thừa lớp

Lập trình hướng đối tượng trong Python

Alex Yarosh

Content Quality Analyst @ DataCamp

Tái sử dụng mã

Lập trình hướng đối tượng trong Python

Tái sử dụng mã

 

1. Đã có người làm sẵn

 

  • Module phù hợp cho chức năng cố định
  • OOP phù hợp để tùy biến chức năng

logo của nhiều gói Python

Lập trình hướng đối tượng trong Python

Tái sử dụng mã

 

1. Đã có người làm sẵn

 

2. DRY: Đừng lặp lại chính mình

các thành phần giao diện khác nhau

Lập trình hướng đối tượng trong Python

Tái sử dụng mã

 

1. Đã có người làm sẵn

 

2. DRY: Đừng lặp lại chính mình

không dùng nhiều thành phần giao diện khác nhau

Lập trình hướng đối tượng trong Python

Kế thừa

 

$$\Large{\text{Chức năng lớp mới = Chức năng lớp cũ + bổ sung}}$$

Lập trình hướng đối tượng trong Python

lớp account

Lập trình hướng đối tượng trong Python

savings account kế thừa từ account

Lập trình hướng đối tượng trong Python

hai lớp kế thừa từ account

Lập trình hướng đối tượng trong Python

phương thức được sửa trong checking account

Lập trình hướng đối tượng trong Python

Cài đặt kế thừa lớp

class BankAccount:
    def __init__(self, balance):
       self.balance = balance

    def withdraw(self, amount):
        self.balance -= amount

# Empty class inherited from BankAccount
class SavingsAccount(BankAccount):
    pass

class MyChild(MyParent):
   # Do stuff here
  • MyParent: lớp được mở rộng/kế thừa chức năng
  • MyChild: lớp kế thừa và bổ sung chức năng
Lập trình hướng đối tượng trong Python

Lớp con có toàn bộ dữ liệu của lớp cha

# Constructor kế thừa từ BankAccount
savings_acct = SavingsAccount(1000)
type(savings_acct)
__main__.SavingsAccount
# Thuộc tính kế thừa từ BankAccount
savings_acct.balance
1000
# Phương thức kế thừa từ BankAccount
savings_acct.withdraw(300)
Lập trình hướng đối tượng trong Python

Kế thừa: quan hệ "là một"

SavingsAccountBankAccount

(có thể có tính năng đặc biệt)

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
Lập trình hướng đối tượng trong Python

Ayo berlatih!

Lập trình hướng đối tượng trong Python

Preparing Video For Download...