Kelas Dasar Abstrak

Pemrograman Berorientasi Objek Tingkat Menengah di Python

Jake Roach

Data Engineer

Kelas dasar abstrak

Kelas dasar abstrak membuat cetak biru untuk kelas dengan mendefinisikan metode abstrak yang wajib diimplementasikan oleh semua turunan

  • Menjamin perilaku umum untuk sekelompok kelas
  • Dekorator @abstractmethod
  • Diturunkan, bukan diinstansiasi
  • Tidak semua metode di kelas dasar abstrak harus abstrak (ada metode konkret)
class School:
    # Lakukan hal seperti enroll 
    # dan menambah mata kuliah
class MiddleSchool:
    # Main alat musik, gabung klub
    # tapi harus enroll dan tambah mata kuliah
class HighSchool:
    # Main olahraga varsity, daftar
    # kuliah, tapi harus enroll 
    # dan tambah mata kuliah
Pemrograman Berorientasi Objek Tingkat Menengah di Python

Membuat kelas dasar abstrak

from abc import ABC, abstractmethod

# Buat kelas dasar abstrak yang mewarisi # dari ABC class School(ABC): @abstractmethod def enroll(self): # Metode ini wajib diimplementasikan # di kelas yang mewarisinya pass
# Metode konkret akan diwarisi def graduate(self): print("Congrats on graduating!")
  • Warisi dari kelas ABC di modul abc
  • pass
  • Kelas mana pun yang mewarisi School harus mengimplementasikan enroll()
  • Dapat juga memiliki metode konkret
Pemrograman Berorientasi Objek Tingkat Menengah di Python

Mengimplementasikan kelas dasar abstrak

class HighSchool(School):
    def enroll(self):
        print("Welcome to high school!")

# Membuat instance HighSchool
high_school = HighSchool()
high_school.enroll()
Welcome to high school!
high_school.graduate()
Congrats on graduating!
  • HighSchool wajib mendefinisikan metode enroll()
  • TypeError jika enroll() tidak didefinisikan
  • HighSchool mewarisi metode graduate()
Pemrograman Berorientasi Objek Tingkat Menengah di Python

Beberapa metode abstrak

class School(ABC):
    @abstractmethod
    def enroll(self):
        pass

    @abstractmethod
    def add_course(self, course_name):
        pass

    def graduate(self):
        print("Congrats on graduating!")

  • Dua metode abstrak, enroll() dan add_course()
class HighSchool(School):
    def __init__(self):
        self.courses = []

    # Mengimplementasikan metode abstrak
    def enroll(self):
        print("Welcome to high school!")

    # Mengimplementasikan metode abstrak
    def add_course(self, course_name):
        self.courses.append(course_name)
        print(f"You enrolled in {course_name}")

Pemrograman Berorientasi Objek Tingkat Menengah di Python

Ayo berlatih!

Pemrograman Berorientasi Objek Tingkat Menengah di Python

Preparing Video For Download...