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]
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 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