Lớp cha và lớp con trong python là gì?

Cùng với các hàm, các lớp là nền tảng của Python và nhiều ngôn ngữ lập trình khác;

anh ấy Mô hình Mối quan hệ Thực thể Nâng cao chứa tất cả các tính năng của mô hình Mối quan hệ Thực thể. Ngoài tất cả những điều đó, nó còn chứa các tính năng của Lớp con, Lớp cha và Kế thừa

Tất cả những điều này một cách chi tiết như sau -

Lớp con là lớp dẫn xuất từ ​​lớp cha. Nó kế thừa các thuộc tính của lớp cha và cũng chứa các thuộc tính của chính nó. Một ví dụ là

Car, Truck và Motorcycle đều là các lớp con của lớp cha Vehicle. Tất cả đều thừa hưởng các thuộc tính chung từ phương tiện như tốc độ, màu sắc, v.v. trong khi chúng cũng có các thuộc tính khác nhau, tôi. e Số bánh xe ô tô là 4 còn xe máy là 2

Lớp cha là lớp mà từ đó có thể tạo ra nhiều lớp con. Các lớp con kế thừa các đặc tính của lớp cha. Lớp cha còn được gọi là lớp cha hoặc lớp cơ sở

Trong ví dụ trên, Vehicle là Superclass và các subclass của nó là Car, Truck và Motorcycle

Kế thừa về cơ bản là quá trình dựa trên một lớp trên một lớp khác. e để xây dựng một lớp học trên một lớp học hiện có. Lớp mới chứa tất cả các tính năng và chức năng của lớp cũ ngoài chức năng của chính nó.

Lớp mới được tạo ra được gọi là lớp con hoặc lớp con và lớp ban đầu là lớp cha hoặc lớp cha

Cho đến bây giờ, bạn đã học về lớp và đối tượng. Trong chương này, bạn sẽ học một khái niệm mới về lập trình hướng đối tượng- Subclass

Để hiểu lớp con là gì, hãy xem một ví dụ

Giả sử chúng ta định nghĩa một hình chữ nhật có chiều dài và chiều rộng. Bây giờ, hình vuông cũng là hình chữ nhật nhưng có cùng chiều dài và chiều rộng

Từ đây, chắc hẳn bạn đã có cảm giác rằng hình vuông là phân lớp của hình chữ nhật

Hãy nghĩ về một số ví dụ khác về các lớp con. Một lớp 'Sách' có thể có 'Sách khoa học' và 'Sách toán học' là các lớp con của nó. Một lớp 'Động vật' khác có thể có 'Chó', 'Mèo' và 'Dê' là các lớp con của nó

Lớp có lớp con được tạo ra được gọi là lớp cha. Các tên khác của lớp cha là lớp cơ sở hoặc lớp cha và các tên khác của lớp con là lớp dẫn xuất hoặc lớp con. Trong ví dụ về Hình chữ nhật của chúng ta, Hình chữ nhật là lớp cha và Hình vuông là lớp con của nó. Quá trình tạo một lớp con của một lớp được gọi là kế thừa

Tất cả các thuộc tính và phương thức của lớp cha cũng được kế thừa bởi lớp con của nó. Điều này có nghĩa là một đối tượng của lớp con có thể truy cập tất cả các thuộc tính và phương thức của lớp cha. Hơn nữa, lớp con có thể có các thuộc tính hoặc phương thức riêng ngoài các thuộc tính hoặc phương thức được kế thừa.  

Hãy học cách tạo một lớp con trong Python

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
emp = Employee[]  # creating object of subclass
 
emp.display1[]
emp.display2[]

Đây là lớp cha
Đây là lớp con

Chúng tôi đã tạo hai lớp

# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9 và
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0 với một phương thức trong mỗi lớp

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
1 → Có nghĩa là lớp
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0 được kế thừa từ lớp
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9. Nói một cách đơn giản,
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0 là một lớp con của
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9. [Một nhân viên là một người]

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0 là lớp con của
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9 nên nó kế thừa phương thức
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
8 của lớp cha của nó.  

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
9 → Chúng ta đã tạo một đối tượng
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
0 của lớp
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0

# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
2 → Một đối tượng của lớp con có thể truy cập bất kỳ thành viên nào [thuộc tính hoặc phương thức] của lớp cha, vì vậy
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
0 có thể gọi phương thức
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
8 của lớp cha
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9

Vì vậy, đây là một triển khai đơn giản của một lớp con. Hãy thử một cái gì đó nhiều hơn

Chúng ta biết rằng một đối tượng của lớp con có thể truy cập các thuộc tính hoặc phương thức của lớp cha. Nhưng điều ngược lại là không đúng, tôi. e. , một đối tượng của lớp cha không thể truy cập các thuộc tính hoặc phương thức của lớp con

Hãy xem điều gì sẽ xảy ra khi một đối tượng của lớp

# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9 cố gắng truy cập phương thức của lớp con của nó
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]

Đây là lớp cha
Truy nguyên [lần gọi gần đây nhất].
  Tập lệnh "tập lệnh. py", dòng 14, trong
    p. display2[]
AttributeError. Đối tượng 'Người' không có thuộc tính 'display2'

Chúng ta đã tạo một đối tượng

# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
8 của lớp cha
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9. Đối tượng này đã gọi thành công phương thức
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
8 đã in một thông báo. Nhưng khi nó cố gọi phương thức
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
71 của lớp con của nó, chúng tôi đã gặp lỗi như mong đợi

Nhìn vào ví dụ tiếp theo

________số 8

Trong phương thức siêu lớp. Tên. John tuổi. 20
Trong phương thức phân lớp. Tên. John tuổi. 20
Bên ngoài cả hai phương pháp. Tên. John tuổi. 20

Hãy cố gắng hiểu những gì đang xảy ra ở đây

Lớp

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0 là một lớp con của lớp
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9. Do đó,
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0 kế thừa các thuộc tính [
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
75 và
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
76], phương thức [
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
8] và hàm tạo [
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
78] của
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9. Kết quả là, chúng cũng có thể được truy cập bởi các đối tượng của lớp con
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0

Do đó, trong phương thức

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
71 của lớp con, chúng ta đã truy cập trực tiếp vào các thuộc tính
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
75 và
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
76 của lớp cha

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
94 → Một đối tượng
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
0 của lớp con
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0 được tạo bằng cách truyền các giá trị “John” và 20 cho các tham số
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
97 và
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
98 của hàm tạo của lớp cha [vì lớp con đã kế thừa hàm tạo của lớp cha]. Do đó, trong hàm tạo, giá trị của các thuộc tính
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
75 và
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
76 lần lượt trở thành “John” và 20 cho đối tượng
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
0

# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
2 →Đối tượng
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
0 gọi phương thức
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
8 của lớp cha

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
05 → Đối tượng
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
0 gọi phương thức
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
71 của lớp riêng của nó

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
08 →Đối tượng
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
0 có thể truy cập các thuộc tính
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
75 và
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
76 của lớp cha.  

Nếu bạn đã hiểu ví dụ này, nghĩa là bạn đã hiểu khái niệm phân lớp. Bây giờ, hãy xem xét thêm một số trường hợp

Nếu cả lớp con và lớp cha đều có hàm tạo thì đối tượng của lớp con được tạo thông qua hàm tạo của lớp con

Nếu một lớp con có phương thức

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
78 thì nó sẽ không kế thừa phương thức
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
78 của lớp cha. Nói cách khác, phương thức 
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
78 của lớp con sẽ ghi đè phương thức 
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
78 của lớp cha

Hãy xem một ví dụ trong đó cả lớp con và lớp cha đều có hàm tạo

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
7

Tên. John tuổi. lương 20. 8000

Chúng tôi đã tạo một đối tượng

# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
0 của lớp con
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0 bằng cách chuyển các giá trị “John”, 20 và 8000 cho các tham số
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
48,
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
49 và
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
60 của hàm tạo của lớp con [vì lớp con có hàm tạo của riêng nó]. Trong hàm tạo này, giá trị của
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
60 được gán cho thuộc tính
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
62 của đối tượng
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
0 và hàm tạo của lớp cha được gọi bằng cách chuyển
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
48 và
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
49 làm đối số. Trong hàm tạo của lớp cha, các thuộc tính
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
75 và
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
76 lần lượt trở thành “John” và 20 cho đối tượng
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
0

Lưu ý rằng hàm tạo của lớp cha

# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9 được gọi từ hàm tạo của lớp con bằng cách viết
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
50

Hãy xem thêm một ví dụ

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
9

lương. 8000
tên. John
tuổi. 20

Chắc bạn đã hiểu chương trình này. Chúng ta đang gọi hàm tạo của lớp cha là

# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9 bên trong hàm tạo của lớp con bằng cách viết
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
50 và gọi phương thức
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
8 của lớp cha bên trong phương thức
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
71 của lớp con bằng cách viết
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
55

Hàm super[] trong Python

Trong ví dụ trước, thay vì

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
56, chúng ta có thể sử dụng hàm
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
57 để gọi hàm tạo và các phương thức của lớp cha bên trong lớp con.  

Hàm

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
57 trả về một đối tượng của lớp cha và có thể được sử dụng để truy cập các thuộc tính hoặc phương thức của lớp cha bên trong lớp con

Hãy viết lại ví dụ cuối cùng bằng cách sử dụng

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
57

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0

lương. 8000
tên. John
tuổi. 20

Trong ví dụ này, chúng tôi đã thay thế

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
50 bằng
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
91 và
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
55 bằng
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
93 bên trong lớp con

Khi gọi một phương thức bằng cách sử dụng

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
57, không cần chuyển self làm đối số đầu tiên

Vì vậy, đó là tất cả những gì bạn cần biết về các phân lớp. Sau chương này, hãy thực hành các câu hỏi về chủ đề này để nắm vững nó

Có hai hàm dựng sẵn trong Python, đó là

# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
95 và
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
96, có thể được sử dụng để kiểm tra lớp của một đối tượng hoặc lớp con của một lớp.  

Phiên bản Python[]

Hàm này được sử dụng để kiểm tra xem một đối tượng có phải là một thể hiện của một lớp cụ thể không. Nói cách khác, nó kiểm tra xem một đối tượng có thuộc về một lớp cụ thể hay không

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
4

Ở đây,

# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
97 là đối tượng của lớp cha
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9 và
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
0 là đối tượng của lớp con
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0. Do đó, per chỉ thuộc về
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9, trong khi
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
0 thuộc về
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0 cũng như
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
05 kiểm tra xem đối tượng
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
97 có thuộc lớp
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9 không

Lớp con Python[]

Hàm này dùng để kiểm tra xem một lớp có phải là lớp con của lớp khác hay không

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
6

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
08 kiểm tra xem lớp
# superclass
class Person[]:
    def __init__[self, per_name, per_age]:
        self.name = per_name
        self.age = per_age
		
    def display1[self]:
        print["In superclass method: name:", self.name, "age:", self.age]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["In subclass method: name:", self.name, "age:", self.age]
		
emp = Employee["John", 20]  # creating object of superclass
 
emp.display1[]
emp.display2[]
print["Outside both methods: name:", emp.name, "age:", emp.age]
9 có phải là lớp con của lớp
# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
0 không

Trước khi kết thúc chương này, chúng ta hãy xem xét thêm một ví dụ về phân lớp

Ví dụ hình vuông và hình chữ nhật

# superclass
class Person[]:
    def display1[self]:
        print["This is superclass"]
 
# subclass		
class Employee[Person]:
    def display2[self]:
        print["This is subclass"]
		
p = Person[]  # creating object of superclass
 
p.display1[]
p.display2[]
5

Không có gì mới trong đoạn mã trên để giải thích. Nếu bạn gặp bất kỳ khó khăn nào, hãy đọc các nhận xét bên trong mã

Bạn có thể đặt câu hỏi trong phần thảo luận bất cứ lúc nào và thoải mái đặt câu hỏi

Để học từ các video đơn giản, bạn luôn có thể xem khóa học video Python của chúng tôi trên CodesDope Pro. Nó có hơn 500 câu hỏi thực hành và hơn 20 dự án

Lớp cha và lớp con là gì?

Các định nghĩa. Lớp dẫn xuất từ ​​lớp khác được gọi là lớp con [cũng là lớp dẫn xuất, lớp mở rộng hoặc lớp con]. Lớp mà từ đó lớp con được dẫn xuất được gọi là lớp cha [cũng là lớp cơ sở hoặc lớp cha]

Siêu lớp trong Python là gì?

Hàm super[] trong Python giúp kế thừa lớp dễ quản lý và mở rộng hơn . Hàm trả về một đối tượng tạm thời cho phép tham chiếu đến lớp cha bằng từ khóa super. Hàm super[] có hai trường hợp sử dụng chính. Để tránh việc sử dụng lớp super [parent] một cách rõ ràng.

Bạn có thể cho một ví dụ về lớp cha và lớp con trong Python không?

Trong ví dụ này, Rectangle là lớp cha và Square là lớp con . Vì hình vuông và hình chữ nhật. Các phương thức __init__[] rất giống nhau, bạn chỉ cần gọi các phương thức của lớp cha. phương thức __init__[] [ Hình chữ nhật.

Lớp con Python là gì?

lớp con Python[] . Nó cũng cung cấp khả năng sử dụng lại mã. Chúng ta không phải viết đi viết lại cùng một mã. Ngoài ra, nó cho phép chúng tôi thêm nhiều tính năng hơn vào một lớp mà không cần sửa đổi nó. the capability of one class to derive or inherit the properties from some other class. It also provides the reusability of code. We don't have to write the same code again and again. Also, it allows us to add more features to a class without modifying it.

Chủ Đề