Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การสืบทอด (Inheritance) ใน Python


ในบทความนี้ เราจะเรียนรู้เกี่ยวกับการสืบทอดและการขยายคลาสใน Python 3.x หรือเวอร์ชันก่อนหน้า

การสืบทอดแสดงความสัมพันธ์ในโลกจริงได้ดี ให้ความสามารถในการนำกลับมาใช้ใหม่ (reusability) และรองรับการสืบทอดแบบถดถอย (transitivity) มีเวลาพัฒนาที่เร็วขึ้น การบำรุงรักษาที่ง่ายขึ้น และง่ายต่อการขยาย

การสืบทอดแบ่งได้กว่า 5 ประเภท −

  • Single (เดี่ยว)
  • Multiple (หลาย)
  • Hierarchical (ลำดับชั้น)
  • Multi-level (หลายระดับ)
  • Hybrid (ผสม)

การสืบทอด (Inheritance) ใน Python

ตามที่แสดงในภาพด้านบน การสืบทอดคือกระบวนการที่เราพยายามเข้าถึงคุณสมบัติของคลาสอื่นๆ โดยไม่ต้องสร้างออบเจกต์ของคลาสพาเรนต์ (parent class) จริงๆ

ที่นี่เราจะเรียนรู้การนำไปใช้งานของ Single และ Hierarchical inheritance

Single Inheritance

ตัวอย่าง

# parent class
class Student():
    # constructor ของ parent class
    def __init__(self, name, enrollnumber):
        self.name = name
        self.enrollnumber = enrollnumber
    def display(self):
        print(self.name)
        print(self.enrollnumber)

# child class
class College(Student):
    def __init__(self, name, enrollnumber, admnyear, branch):
        self.admnyear = admnyear
        self.branch = branch
        # เรียก __init__ ของ parent class
        Student.__init__(self, name, enrollnumber)

# สร้างออบเจกต์สำหรับ base/derived class
obj = College('Rohit', 42414802718, 2018, "CSE")
obj.display()

ผลลัพธ์

Rohit
42414802718

Multiple Inheritance

ตัวอย่าง

# parent class
class Student():
    # constructor ของ parent class
    def __init__(self, name, enrollnumber):
        self.name = name
        self.enrollnumber = enrollnumber
    def display(self):
        print(self.name)
        print(self.enrollnumber)

# child class
class College(Student):
    def __init__(self, name, enrollnumber, admnyear, branch):
        self.admnyear = admnyear
        self.branch = branch
        # เรียก __init__ ของ parent class
        Student.__init__(self, name, enrollnumber)

# child class
class University(Student):
    def __init__(self, name, enrollnumber, refno, branch):
        self.refno = refno
        self.branch = branch
        # เรียก __init__ ของ parent class
        Student.__init__(self, name, enrollnumber)

# สร้างออบเจกต์สำหรับ base/derived class
obj_1 = College('Rohit', 42414802718, 2018, "CSE")
obj_1.display()
obj_2 = University('Rohit', 42414802718, "st2018", "CSE")
obj_2.display()

ผลลัพธ์

Rohit
42414802718
Rohit
42414802718

สรุป

ในบทความนี้ เราได้เรียนรู้เกี่ยวกับ Inheritance ใน Python โดยครอบคลุม Single และ Hierarchical inheritance