Pewarisan kelas

Pengantar Pemrograman Berorientasi Objek di Python

George Boorman

Curriculum Manager, DataCamp

Guna ulang kode

 

1. Seseorang sudah membuatnya

 

  • Paket cocok untuk fitur tetap
  • OOP cocok untuk menyesuaikan fitur

logo beberapa paket python

Pengantar Pemrograman Berorientasi Objek di Python

Guna ulang kode

 

1. Seseorang sudah membuatnya

 

2. DRY: Jangan Ulangi Diri Anda

berbagai elemen GUI

Pengantar Pemrograman Berorientasi Objek di Python

Guna ulang kode

 

1. Seseorang sudah membuatnya

 

2. DRY: Jangan Ulangi Diri Anda

jangan gunakan berbagai elemen GUI

Pengantar Pemrograman Berorientasi Objek di Python

Pewarisan

 

$$\Large{\text{Fungsionalitas kelas baru = Fungsionalitas kelas lama + ekstra}}$$

Pengantar Pemrograman Berorientasi Objek di Python

Contoh hierarki

Kelas BankAccount

Pengantar Pemrograman Berorientasi Objek di Python

Contoh hierarki

SavingsAccount mewarisi dari BankAccount

Pengantar Pemrograman Berorientasi Objek di Python

Contoh hierarki

CheckingAccount juga mewarisi dari BankAccount

Pengantar Pemrograman Berorientasi Objek di Python

Contoh hierarki

CheckingAccount memiliki metode withdraw yang diubah

Pengantar Pemrograman Berorientasi Objek di Python

Menerapkan pewarisan kelas

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: Kelas induk yang fungsionalitasnya diperluas/diwarisi
  • SavingsAccount: Kelas anak/subkelas yang mewarisi fungsionalitas dan menambah fitur
Pengantar Pemrograman Berorientasi Objek di Python

Kelas anak mewarisi semua data induk

# Constructor inherited from BankAccount
savings_acct = SavingsAccount(1000)
type(savings_acct)
__main__.SavingsAccount
# Attribute inherited from BankAccount
savings_acct.balance
1000
# Method inherited from BankAccount
savings_acct.withdraw(300)
Pengantar Pemrograman Berorientasi Objek di Python

Pewarisan: relasi "is-a"

SavingsAccount adalah BankAccount

(mungkin dengan fitur khusus)

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
Pengantar Pemrograman Berorientasi Objek di Python

Ayo berlatih!

Pengantar Pemrograman Berorientasi Objek di Python

Preparing Video For Download...