Ví dụ thời gian thực về thừa kế trong python

Một trong những khái niệm cốt lõi trong ngôn ngữ lập trình hướng đối tượng [OOP] là tính kế thừa. Đó là một cơ chế cho phép bạn tạo một hệ thống phân cấp các lớp chia sẻ một tập hợp các thuộc tính và phương thức bằng cách lấy một lớp từ một lớp khác. Kế thừa là khả năng của một lớp kế thừa hoặc kế thừa các thuộc tính từ một lớp khác.  

Lợi ích của thừa kế là.  

  • Nó thể hiện tốt các mối quan hệ trong thế giới thực
  • Nó 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ó
  • Nó có tính chất bắc cầu, nghĩa là nếu lớp B kế thừa từ lớp A khác, thì tất cả các lớp con của B sẽ tự động kế thừa từ lớp A
  • Kế thừa cung cấp một cấu trúc mô hình đơn giản, dễ hiểu.  
  • Chi phí phát triển và bảo trì ít hơn do thừa kế.  

Cú pháp kế thừa Python

Class BaseClass:
    {Body}
Class DerivedClass[BaseClass]:
    {Body}

Tạo một lớp cha

Tạo một lớp Người với các phương thức Hiển thị

Python3




Satyam 102
92

 

Satyam 102
0
Satyam 102
1
Satyam 102
2____13

Satyam 102
4

Satyam 102
4
Satyam 102
6

Satyam 102
4
Satyam 102
8
Satyam 102
9
Satyam 102
10
Satyam 102
11
Satyam 102
12
Satyam 102
3

Satyam 102
14
Satyam 102
10
Satyam 102
16
Satyam 102
17
Satyam 102
18

Satyam 102
14
Satyam 102
10
Satyam 102
21
Satyam 102
12
Satyam 102
17
Satyam 102
12

 

Satyam 102
4
Satyam 102
26

Satyam 102
4
Satyam 102
8
Satyam 102
29
Satyam 102
10
Satyam 102
3

Satyam 102
14
Satyam 102
43
Satyam 102
44
Satyam 102
10
Satyam 102
46
Satyam 102
10
Satyam 102
21
Satyam 102
12
Satyam 102
10

 

 

Satyam 102
11

Satyam 102
12
Satyam 102
17
Satyam 102
1_______415
Satyam 102
16
Satyam 102
17
Satyam 102
10
Satyam 102
19

Satyam 102
10

đầu ra

Satyam 102

Tạo một lớp con

Ở đây Emp là một lớp khác sẽ kế thừa các thuộc tính của lớp Person [lớp cơ sở]

Python3




Satyam 102
0
Satyam 102
12

Satyam 102
4

Satyam 102
4
Satyam 102
8
Satyam 102
16
Satyam 102
44
Satyam 102
10
Satyam 102
3

Satyam 102
14
Satyam 102
43
Satyam 102
44
Satyam 102
53
Satyam 102
10

Satyam 102
14

Satyam 102
56
Satyam 102
17
Satyam 102
58
Satyam 102
59
Satyam 102
16
Satyam 102
31____410

 

Satyam 102
33

Satyam 102
34

 

Satyam 102
35

Satyam 102
36____516
Satyam 102
38

đầu ra

Satyam 102
1

Ví dụ về tính kế thừa trong Python

Python3




Satyam 102
92

 

Satyam 102
920

Satyam 102
921

Satyam 102
922

Satyam 102
923

 

 

Satyam 102
0
Satyam 102
1
Satyam 102
2____13

 

Satyam 102
14
Satyam 102
6

Satyam 102
14
Satyam 102
8
Satyam 102
9____110
Satyam 102
04

Satyam 102
05
Satyam 102
10____116
Satyam 102
17
Satyam 102
18

 

Satyam 102
14
Satyam 102
11

Satyam 102
14
Satyam 102
8
Satyam 102
14
Satyam 102
10
Satyam 102
3

________ 105 ________ 118 ________ 110 ________ 116

 

Satyam 102
14
Satyam 102
26

Satyam 102
14
Satyam 102
8
Satyam 102
25
Satyam 102
10
Satyam 102
3

________ 105 ________ 118 ________ 130

 

 

Satyam 102
31

Satyam 102
0
Satyam 102
33

 

Satyam 102
14
Satyam 102
35

Satyam 102
14
Satyam 102
8
Satyam 102
25
Satyam 102
10
Satyam 102
3

________ 105 ________ 118 ________ 143

 

 

Satyam 102
11

Satyam 102
12
Satyam 102
17
Satyam 102
1____148
Satyam 102
49
Satyam 102
19

Satyam 102
43
Satyam 102
52

 

Satyam 102
12
Satyam 102
17
Satyam 102
55____156
Satyam 102
49
Satyam 102
58

Satyam 102
43
Satyam 102
52

đầu ra.  

Satyam 102
2

Lớp đối tượng là gì?

Giống như lớp Java Object, trong Python [từ phiên bản 3. x], đối tượng là gốc của tất cả các lớp.  

  • Trong Trăn 3. x, “Kiểm tra lớp [đối tượng]” và “Kiểm tra lớp” giống nhau.  
  • Trong Python 2. x, “class Test[object]” tạo một lớp có đối tượng là cha [được gọi là lớp kiểu mới] và “class Test” tạo một lớp kiểu cũ [không có cha phản đối].  

Phân lớp [Gọi hàm tạo của lớp cha]

Một lớp con cần xác định lớp nào là lớp cha của nó. Điều này có thể được thực hiện bằng cách đề cập đến tên lớp cha trong định nghĩa của lớp con.  

Ví dụ. tên lớp con [tên lớp cha].  

Python3




Satyam 102
61

Satyam 102
62

 

Satyam 102
63

Satyam 102
0
Satyam 102
1
Satyam 102
2____13

 

Satyam 102
14
Satyam 102
69

Satyam 102
14
Satyam 102
8
Satyam 102
9____110
Satyam 102
74

Satyam 102
05
Satyam 102
10____116
Satyam 102
17
Satyam 102
18

Satyam 102
05
Satyam 102
10____182
Satyam 102
17
Satyam 102
84

 

Satyam 102
14
Satyam 102
8
Satyam 102
87
Satyam 102
10
Satyam 102
3

Satyam 102
05
Satyam 102
43____344
Satyam 102
10
Satyam 102
94

Satyam 102
05
Satyam 102
43____344
Satyam 102
10
Satyam 102
99

 

Satyam 102
100

 

 

Satyam 102
0
Satyam 102
33

Satyam 102
14
Satyam 102
8
Satyam 102
9____110
Satyam 102
107

Satyam 102
05
Satyam 102
10
Satyam 102
110
Satyam 102
17
Satyam 102
112

Satyam 102
05
Satyam 102
10____1115
Satyam 102
17
Satyam 102
117

 

Satyam 102
05
Satyam 102
119

Satyam 102
05
Satyam 102
121____110
Satyam 102
123

 

 

Satyam 102
124

Satyam 102
125
Satyam 102
17
Satyam 102
55
Satyam 102
128
Satyam 102
16
Satyam 102
130
Satyam 102
16
Satyam 102
132
Satyam 102
16
Satyam 102
134
Satyam 102
10

 

Satyam 102
136

Satyam 102
137

đầu ra.  

Satyam 102
4

‘a’ là thể hiện được tạo cho lớp Person. Nó gọi __init__[] của lớp được giới thiệu. Bạn có thể thấy ‘đối tượng’ được viết trong phần khai báo của lớp Person. Trong Python, mọi lớp kế thừa từ một lớp cơ bản dựng sẵn gọi là 'đối tượng'. nhà xây dựng tôi. e. hàm ‘__init__’ của một lớp được gọi khi chúng ta tạo một biến đối tượng hoặc một thể hiện của lớp.
Các biến được định nghĩa trong __init__[] được gọi là biến thể hiện hoặc đối tượng. Do đó, 'tên' và 'idnumber' là các đối tượng của lớp Người. Tương tự, 'salary' và 'post' là các đối tượng của lớp Nhân viên. Vì lớp Nhân viên kế thừa từ lớp Người, 'tên' và 'idnumber' cũng là đối tượng của lớp Nhân viên.

Chương trình Python để chứng minh lỗi nếu chúng ta quên gọi __init__[] của cha mẹ

Nếu bạn quên gọi __init__[] của lớp cha thì các biến thể hiện của nó sẽ không khả dụng cho lớp con.  

Đoạn mã sau tạo ra lỗi vì lý do tương tự.  

Python3




Satyam 102
0
Satyam 102
139

Satyam 102
14
Satyam 102
8
Satyam 102
9
Satyam 102
10
Satyam 102
144
Satyam 102
17
Satyam 102
128
Satyam 102
3

Satyam 102
05
Satyam 102
10____116
Satyam 102
17
Satyam 102
152

 

 

Satyam 102
0
Satyam 102
154

Satyam 102
14
Satyam 102
8
Satyam 102
9____110
Satyam 102
159

Satyam 102
05
Satyam 102
10____1162
Satyam 102
17
Satyam 102
164

 

 

Satyam 102
2
Satyam 102
17
Satyam 102
167____1168
Satyam 102
10

Satyam 102
43
Satyam 102
44
Satyam 102
2
Satyam 102
94

đầu ra.  

Satyam 102
1

Các loại thừa kế khác nhau

  • thừa kế duy nhất. Khi một lớp con chỉ kế thừa từ một lớp cha, nó được gọi là kế thừa đơn. Chúng ta đã thấy một ví dụ ở trên
  • Nhiều thừa kế. Khi một lớp con kế thừa từ nhiều lớp cha, nó được gọi là đa kế thừa.  

Không giống như java, python hiển thị nhiều kế thừa

Python3




Satyam 102
174

Satyam 102
175

 

 

Satyam 102
0
Satyam 102
177
Satyam 102
2
Satyam 102
3

Satyam 102
14
Satyam 102
8
Satyam 102
9
Satyam 102
10
Satyam 102
3

Satyam 102
05
Satyam 102
10____1187
Satyam 102
17
Satyam 102
48

Satyam 102
05
Satyam 102
43____344
Satyam 102
193
Satyam 102
10

 

 

Satyam 102
0
Satyam 102
196
Satyam 102
2
Satyam 102
3

Satyam 102
14
Satyam 102
8
Satyam 102
9
Satyam 102
10
Satyam 102
3

Satyam 102
05
Satyam 102
10____2206
Satyam 102
17
Satyam 102
56

Satyam 102
05
Satyam 102
43____344
Satyam 102
212
Satyam 102
10

 

 

Satyam 102
0
Satyam 102
215

Satyam 102
14
Satyam 102
8
Satyam 102
9
Satyam 102
10
Satyam 102
3

 

Satyam 102
05
Satyam 102
222

Satyam 102
05
Satyam 102
224

Satyam 102
05
Satyam 102
226____110
Satyam 102
10

Satyam 102
05
Satyam 102
230
Satyam 102
10
Satyam 102
10

Satyam 102
05
Satyam 102
43____344
Satyam 102
236
Satyam 102
10

 

Satyam 102
14
Satyam 102
8
Satyam 102
240
Satyam 102
10
Satyam 102
3

Satyam 102
05
Satyam 102
43____344
Satyam 102
10
Satyam 102
247
Satyam 102
10
Satyam 102
249

 

 

Satyam 102
250
Satyam 102
17
Satyam 102
252

Satyam 102
253

đầu ra.  

Satyam 102
1
  • kế thừa đa cấp. Khi chúng ta có quan hệ con cháu.  

Python3




Satyam 102
92

 

Satyam 102
920

Satyam 102
921

Satyam 102
922

Satyam 102
923

 

 

Satyam 102
0
Satyam 102
260____12
Satyam 102
3

 

Satyam 102
14
Satyam 102
6

Satyam 102
14
Satyam 102
8
Satyam 102
9____110
Satyam 102
04

Satyam 102
05
Satyam 102
10____116
Satyam 102
17
Satyam 102
18

 

Satyam 102
14
Satyam 102
11

Satyam 102
14
Satyam 102
8
Satyam 102
14
Satyam 102
10
Satyam 102
3

________ 105 ________ 118 ________ 110 ________ 116

 

 

Satyam 102
286

Satyam 102
0
Satyam 102
288

 

Satyam 102
14
Satyam 102
6

Satyam 102
14
Satyam 102
8
Satyam 102
9____110
Satyam 102
295

Satyam 102
05
Satyam 102
297
Satyam 102
10
Satyam 102
299

Satyam 102
05
Satyam 102
10____3402
Satyam 102
17
Satyam 102
404

 

Satyam 102
14
Satyam 102
11

Satyam 102
14
Satyam 102
8
Satyam 102
409
Satyam 102
10
Satyam 102
3

________ 105 ________ 118 ________ 110 ________ 3402

 

Satyam 102
286

 

 

Satyam 102
0
Satyam 102
418

 

Satyam 102
14
Satyam 102
6

Satyam 102
14
Satyam 102
8
Satyam 102
9____110
Satyam 102
425

Satyam 102
05
Satyam 102
427____110
Satyam 102
429

Satyam 102
05
Satyam 102
10____3432
Satyam 102
17
Satyam 102
434

 

Satyam 102
14
Satyam 102
436

Satyam 102
14
Satyam 102
8
Satyam 102
439
Satyam 102
10
Satyam 102
3

________ 105 ________ 118 ________ 110 ________ 3432

 

 

Satyam 102
11

Satyam 102
447
Satyam 102
17
Satyam 102
449
Satyam 102
48
Satyam 102
16
Satyam 102
168
Satyam 102
16
Satyam 102
454
Satyam 102
10

Satyam 102
43
Satyam 102
457

đầu ra.  

Satyam 102
5
  • Kế thừa phân cấp Nhiều hơn một lớp dẫn xuất được tạo từ một cơ sở duy nhất
  • thừa kế lai. Hình thức này kết hợp nhiều hình thức thừa kế. Về cơ bản, nó là sự pha trộn của nhiều kiểu thừa kế

Để biết thêm chi tiết xin vui lòng đọc bài viết này. Các kiểu kế thừa trong Python

Các thành viên private của lớp cha

Không phải lúc nào chúng ta cũng muốn các biến đối tượng của lớp cha được kế thừa bởi lớp con i. e. chúng ta có thể đặt một số biến thể hiện của lớp cha ở chế độ riêng tư, sẽ không khả dụng đối với lớp con.
Chúng ta có thể đặt một biến thể hiện ở chế độ riêng tư bằng cách thêm hai dấu gạch dưới trước tên của nó. Ví dụ:

Python3




Satyam 102
458

Satyam 102
459

 

 

Satyam 102
0
Satyam 102
461____12
Satyam 102
3

Satyam 102
14
Satyam 102
8
Satyam 102
9
Satyam 102
10
Satyam 102
3

Satyam 102
05
Satyam 102
10____3471
Satyam 102
17
Satyam 102
473

 

_______105____3475

Satyam 102
05
Satyam 102
10____3478
Satyam 102
17
Satyam 102
480

 

 

Satyam 102
0
Satyam 102
482

Satyam 102
14
Satyam 102
8
Satyam 102
9
Satyam 102
10
Satyam 102
3

Satyam 102
05
Satyam 102
10____3490
Satyam 102
17
Satyam 102
492

Satyam 102
05
Satyam 102
494
Satyam 102
10
Satyam 102
10

 

 

________ 3497 ________ 117 ________ 3499

 

Satyam 102
100

_______343____4102

đầu ra.  

Satyam 102
3

Vì 'd' được đặt ở chế độ riêng tư bởi các dấu gạch dưới đó, nên nó không khả dụng đối với lớp con 'D' và do đó xảy ra lỗi

Sự kế thừa trong ví dụ thực tế về python là gì?

Kế thừa trong Python . Giả sử tồn tại một lớp “Trái cây”, và bạn lấy từ nó để tạo một lớp mới có tên là “Apple”. Mối quan hệ đơn giản giữa hai lớp nói rằng “Apple” là “Fruit”.

Kế thừa ví dụ thời gian thực là gì?

OOP là tất cả về các đối tượng trong thế giới thực và tính kế thừa là một cách biểu diễn các mối quan hệ trong thế giới thực. Đây là một ví dụ – ô tô, xe buýt, xe đạp – tất cả những thứ này thuộc một danh mục rộng hơn có tên là Phương tiện. Điều đó có nghĩa là họ đã kế thừa các thuộc tính của phương tiện hạng i. tất cả đều được sử dụng để vận chuyển.

Ví dụ thực tế về đa kế thừa là gì?

Cha mẹ là một ví dụ điển hình về đa thừa kế . Mỗi đứa trẻ có hai cha mẹ - đó chỉ là như vậy.

đối tượng trong python với ví dụ thời gian thực là gì?

Đối tượng Python . Ví dụ: giả sử Bike là một lớp thì chúng ta có thể tạo các đối tượng như bike1 , bike2 , v.v. từ lớp. Đây là cú pháp để tạo một đối tượng. Ở đây, bike1 là đối tượng của lớp. an instance of a class. For example, suppose Bike is a class then we can create objects like bike1 , bike2 , etc from the class. Here's the syntax to create an object. Here, bike1 is the object of the class.

Chủ Đề