Tạo lớp kế thừa trong lập trình hướng đối tượng với Python

Lập trình Hướng Đối Tượng với Python

5.0 (6 đánh giá)
Tạo bởi I Hate Python Team Cập nhật lần cuối 5 năm trước 22.019 lượt xem 1 bình luận
Tác giả/Dịch giả: I Hate Python Team
Học nhanh

Danh sách bài học

Tạo lớp kế thừa trong lập trình hướng đối tượng với Python

Dẫn nhập

Ở các bài trước, bạn đọc đã được tìm hiểu sơ bộ về một số khái niệm cơ bản của một lớp như việc TẠO RA MỘT LỚP, DỰNG HÀM CONSTRUCTOR, GÁN THUỘC TÍNH CÁC PHƯƠNG THỨC.

Còn ở bài này, bạn đọc sẽ được biết tới cách kế thừa lớp chúng ta vừa viết. Nói nôm na đơn giản là ta không phải viết lại một nùi code.

Tại sao lại như vậy? từ từ ta sẽ dần tìm hiểu


Nội dung

Để theo dõi bài này một cách tốt nhất, bạn nên có có những kiến thức cơ bản về Python trong khóa LẬP TRÌNH PYTHON CƠ BẢN

Nếu bạn chưa có thời gian để học hết khóa trên thì hãy đảm bảo đã tìm hiểu những kiến thức sau đây

Và đương nhiên để học tiếp bài sau, bạn phải nắm vững kiến thức ở các bài trước: 

Bạn và Kteam sẽ cùng tìm hiểu những nội dụng sau đây

  • Tạo lớp kế thừa
  • Kế thừa thuộc tính
  • Kế thừa hàm constructor
  • Kế thừa phương thức

Tạo lớp kế thừa

Bạn có biết siêu nhân gao chứ? Siêu nhân gao là siêu nhân, tuy nhiên nó cũng không phải siêu nhân. Ý mình là, lớp siêu nhân cũng có thể miêu tả được siêu nhân gao, tuy nhiên một siêu nhân gao còn cần phải có một vài thứ khác để phân biệt với các siêu nhân khác mà ta không thể viết nó chung một lớp với các siêu nhân khác được vì như vậy sẽ thiếu một số đặc điểm riêng.

Vậy ý tưởng của ta là tạo ra một lớp mới là một lớp siêu nhân gao. Lớp này có đặc điểm là một lớp nâng cấp của lớp siêu nhân. Có nghĩa là nó có nhiều thứ mà lớp siêu nhân chưa có.

Trước mắt là chúng ta cứ viết lại một lớp siêu nhân gao có đầy đủ những thứ của lớp siêu nhân có cái đã. Nhưng viết thế nào? Dễ mà, copy paste là được. Như vậy thì chẳng giống lập trình tí nào, vậy nên ở lập trình hướng đối tượng không riêng gì Python, nó cho phép bạn gọi là kế thừa, lấy những gì mà lớp cũ có. Vậy ta muốn tạo lớp siêu nhân gao kế thừa từ lớp siêu nhân thì như thế nào?

Mời bạn đọc xem ví dụ:

 Kết quả:


Kế thừa thuộc tính

Tiếp theo, ta sẽ chỉnh sửa ở lớp siêu nhân một chút xem ở lớp siêu nhân gao có được “hưởng” từ đó hay không. Đơn giản bằng việc tạo một biến ở lớp siêu nhân

 Kết quả:

Giả sử như bạn không muốn thừa hưởng giá trị từ lớp ta kế thừa thì phải làm sao? Đơn giản mà, ta viết lại thôi

Kết quả:


Kế thừa hàm constructor

Ta vừa mới thử thừa kế các thuộc tính ở lớp ta thừa kế (lớp cha), giờ ta thử thừa kế hàm constructor. Nếu lớp bạn thừa kế có hàm constructor thì khi bạn thừa kế lớp đó bạn nghiễm nhiên đã có một hàm constructor, và dùng như dùng ở lớp kế thừa. Mời bạn đọc xem ví dụ:

 Kết quả:

 Vậy câu hỏi đặt ra là ta muốn thêm một số thuộc tính nữa cho lớp siêu nhân gao thì sao? Giả sử ta cũng muốn thêm một thuộc tính nữa là sư thú mà siêu nhân gao đó có khi khởi tạo. Và muốn thay đổi thì ta viết lại thôi.

 Kết quả

Bạn  thấy rườm rà không nhỉ? Tại sao ta phải ghi lại gần như là hết cả hàm constructor như lớp cha. Có cách nào nhanh gọn giúp ta đỡ việc copy paste lại phương thức từ hàm constructor lớp cha mà chỉ cần thêm những thuộc tính mới thôi không? Có đấy. Ví dụ sau đây sẽ dùng phương pháp đó và đây là cách người ta hay dùng chứ không phải cách bên trên.

 Kết quả:

 Lưu ý: Đây là cách dùng cho hàm super cho Python 3.X, với Python 2.X sẽ có một chút khác biệt. Với ví dụ trên nếu là Python 2 thì bạn sẽ gọi hàm super như sau:


Kế thừa phương thức

Thế còn kế thừa những phương thức thì sao nhỉ ? Hoàn toàn tương tự như kế thừa thuộc tính. Nếu lớp trước có những phương thức gì, bạn được kế thừa toàn bộ. Nếu bạn muốn thêm thì viết thêm ở lớp kế thừa. Còn nếu muốn chỉnh sửa, thì ta viết lại phương thức đó:

 Kết quả:


Kết luận

Bài này đã được tìm hiểu về kế thừa trong lập trình hướng đối tượng Python

Ở bài tiếp theo, ta sẽ tìm hiểu về SPECIAL METHOD - một loại phương thức trong lớp của Python nữa ngoài regular method, class method và static method.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Tạo lớp kế thừa trong lập trình hướng đối tượng với Python dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Tác giả/Dịch giả

Chúng tôi là những người có niềm yêu thích Python và muốn Python được nhiều người biết đến hơn ở Việt Nam.

Khóa học

Lập trình Hướng Đối Tượng với Python

Nhắc đến lập trình hướng đối tượng, mọi người nghĩ ngay tới những Java, C++, C#,… Và bên cạnh đó, tuy không nhiều, nhưng vẫn được nhắn đến đó chính là chú trăn thanh lịch Python.

Ở khóa học này, Kteam sẽ giới thiệu với các bạn những kiến thức cơ bản về Lập trình hướng đối tượng trong Python một cách dễ hiểu, từ đó bạn có thể ứng dụng kiến thức hướng đối tượng khi tiếp xúc với các framework, package của Python.

Không những thế, bạn cũng sẽ dễ dàng tiếp cận sâu hơn về lập trình hướng đối tượng khác khi bạn chuyển đổi sang lập trình bằng ngôn ngữ khác, vì như đã nói, hướng đối tượng có ở hầu hết mọi ngôn ngữ hiện nay và được ứng dụng rất rộng rãi

Đánh giá

Vo Tan Duc đã đánh giá 2 năm trước

Tican1502 đã đánh giá 4 năm trước

kkktttccc đã đánh giá 4 năm trước

nguyenquockhanh55 đã đánh giá 4 năm trước

hoangtrunghai đã đánh giá 5 năm trước

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
quyhohamhoc đã bình luận 2 năm trước

khóa này thiếu tài liệu quá ko có bt nếu kteam tạo nhiều bài tập hợp thì quá ok 

 

Không có video.