Sự khác biệt giữa đa hình và kế thừa trong OOP

Sự khác biệt chính - Đa hình so với Kế thừa trong OOP
 

Lập trình hướng đối tượng (OOP) thường được sử dụng để phát triển phần mềm. Nhiều ngôn ngữ lập trình hỗ trợ lập trình hướng đối tượng. Lập trình hướng đối tượng là một phương pháp để thiết kế chương trình bằng các lớp và đối tượng. Một lớp trong OOP là một kế hoạch chi tiết để tạo một đối tượng. Một lớp có các thuộc tính và phương thức. Một đối tượng là một thể hiện của một lớp. OOP chứa bốn trụ cột như Kế thừa, Đa hình, Trừu tượng và Đóng gói. Bài viết này thảo luận về sự khác biệt giữa Đa hình và Kế thừa trong OOP. Các sự khác biệt chính giữa đa hình và kế thừa trong OOP là Đa hình là khả năng của một đối tượng hành xử theo nhiều cách và Kế thừa là tạo ra một lớp mới bằng cách sử dụng các thuộc tính và phương thức của một lớp hiện có.

NỘI DUNG

1. Tổng quan và sự khác biệt chính
2. Đa hình trong OOP là gì
3. Kế thừa trong OOP là gì
4. Điểm tương đồng giữa tính đa hình và tính kế thừa trong OOP
5. So sánh cạnh nhau - Đa hình so với kế thừa trong OOP ở dạng bảng
6. Tóm tắt

Đa hình trong OOP là gì?

Đa hình là để chỉ nhiều hình thức. Một đối tượng có thể có nhiều hành vi. Đa hình có thể được chia thành hai loại. Họ đang quá tải và ghi đè.

Quá tải

Tham khảo chương trình dưới đây được viết bằng Java.

Hình 01: Quá tải

Theo chương trình trên, một đối tượng loại A được tạo ra. Khi gọi obj.sum (); nó sẽ cho đầu ra liên quan đến phương thức sum (). Khi gọi obj.sum (2,3); nó sẽ cho đầu ra liên quan đến tổng (int a, int b). Có thể thấy rằng cùng một đối tượng có các hành vi khác nhau tùy thuộc vào tình huống. Khi có nhiều phương thức có cùng tên, nhưng với các tham số khác nhau, nó được gọi là quá tải. Nó còn được gọi là liên kết tĩnh hoặc là biên dịch đa hình thời gian.

Ghi đè

Một loại đa hình khác là ghi đè. Tham khảo chương trình dưới đây được viết bằng Java.

Hình 02: Ghi đè

Theo chương trình trên, có một phương thức display () trong lớp A. Lớp B mở rộng từ lớp A. Do đó, tất cả các phương thức trong lớp A đều có thể truy cập được bởi lớp B. Đó là sự kế thừa. Khái niệm thừa kế được mô tả thêm sau.

Lớp B cũng có cùng phương thức hiển thị (). Khi tạo một đối tượng loại A và gọi phương thức hiển thị, đầu ra sẽ cho B. Phương thức hiển thị loại A bị ghi đè bởi phương thức hiển thị lớp B. Vì vậy, đầu ra là B.

Khi có các phương thức có cùng tên và cùng tham số nhưng trong hai lớp khác nhau và chúng được liên kết với thừa kế, nó được gọi là ghi đè. Nó còn được gọi là Liên kết muộn, Liên kết động, Đa hình thời gian chạy. Quá tải và ghi đè được gọi là Đa hình. Đây là một khái niệm chính trong lập trình hướng đối tượng.

Kế thừa trong OOP là gì?

Tham khảo chương trình dưới đây được viết bằng Java.

Hình 03: Ví dụ về kế thừa

Theo chương trình trên, lớp A có phương thức sum () và lớp B có phương thức sub ().

Phương thức sum () của lớp A có thể được sử dụng trong lớp B bằng cách sử dụng từ khóa mở rộng. Sử dụng lại các thuộc tính và phương thức trong một lớp hiện có để tạo một lớp mới được gọi là Kế thừa. Thậm chí không có phương thức sum () trong lớp B; nó được kế thừa từ lớp A. Tính kế thừa rất hữu ích cho việc sử dụng lại mã. Lớp cũ hơn được gọi là lớp cơ sở, siêu lớp hoặc là lớp phụ huynh. Lớp dẫn xuất được gọi là phân lớp hoặc là lớp trẻ.

Các kiểu thừa kế

Có nhiều loại thừa kế. Chúng là Kế thừa một cấp, Kế thừa nhiều cấp, Kế thừa nhiều cấp, Kế thừa phân cấp và Kế thừa lai.

Kế thừa đơn

Trong Kế thừa đơn, có một siêu lớp và một lớp phụ. Nếu lớp A là siêu hạng và lớp B là lớp phụ, tất cả các thuộc tính và phương thức của lớp A có thể truy cập được bởi lớp B. Chỉ có một cấp độ; do đó, nó được gọi là thừa kế đơn cấp.

Kế thừa đa cấp

Trong Kế thừa đa cấp có ba cấp độ. Lớp trung cấp kế thừa từ siêu hạng. Lớp con kế thừa từ lớp trung gian. Nếu có ba lớp là A, B và C và A là siêu hạng và B là lớp trung gian. Sau đó B thừa hưởng từ A và C thừa hưởng từ B, đó là Kế thừa đa cấp.

Đa kế thừa

Trong Đa kế thừa, có nhiều siêu lớp và một lớp con. Nếu có ba siêu lớp gọi là A, B, C và D là lớp con, thì lớp D có thể kế thừa từ A, B và C. Nhiều kế thừa được hỗ trợ trong ngôn ngữ lập trình C ++. Nó không được hỗ trợ trong các ngôn ngữ lập trình như Java hoặc C #. Các giao diện được sử dụng để thực hiện Đa kế thừa trong các ngôn ngữ này.

Kế thừa phân cấp

Nếu có các lớp được gọi là A là siêu lớp và B, C là các lớp con, thì các lớp con đó có thể kế thừa các thuộc tính và phương thức của lớp A. Loại kế thừa đó được gọi là Kế thừa phân cấp.

Di truyền lai

Có một kiểu thừa kế đặc biệt khác được gọi là Kế thừa lai. Nó là sự kết hợp của đa cấp và nhiều thừa kế. Nếu A, B, C và D là các lớp và B được thừa hưởng từ A và D được thừa hưởng từ cả B và C, thì đó là một thừa kế lai.

Điểm tương đồng giữa tính đa hình và tính kế thừa trong OOP là gì?

  • Cả hai đều là khái niệm về lập trình hướng đối tượng.

Sự khác biệt giữa tính đa hình và tính kế thừa trong OOP là gì?

Đa hình vs Kế thừa trong OOP

Đa hình là một khả năng của một đối tượng để hành xử theo nhiều cách. Kế thừa là tạo ra một lớp mới bằng cách sử dụng các thuộc tính và phương thức của một lớp hiện có.
 Sử dụng
Đa hình được sử dụng cho các đối tượng để gọi dạng phương thức nào trong thời gian biên dịch và thời gian chạy. Kế thừa được sử dụng để tái sử dụng mã.
Thực hiện
Đa hình được thực hiện trong các phương pháp. Kế thừa được thực hiện trong các lớp.
 Thể loại
Đa hình có thể được chia thành quá tải và ghi đè. Kế thừa có thể được chia thành thừa kế đơn cấp, đa cấp, phân cấp, lai và nhiều kế thừa.

Tóm lược - Đa hình vs Kế thừa trong OOP 

Đa hình và kế thừa là những khái niệm chính trong lập trình hướng đối tượng. Sự khác biệt giữa Đa hình và Kế thừa trong OOP là Đa hình là giao diện chung cho nhiều dạng và Kế thừa là tạo một lớp mới bằng cách sử dụng các thuộc tính và phương thức của một lớp hiện có. Cả hai khái niệm này đều được sử dụng rộng rãi trong Phát triển phần mềm.

Tải xuống Đa hình PDF so với Kế thừa trong OOP

Bạn có thể tải xuống phiên bản PDF của bài viết này và sử dụng nó cho mục đích ngoại tuyến theo ghi chú trích dẫn. Vui lòng tải xuống phiên bản PDF tại đây Sự khác biệt giữa Đa hình và Kế thừa trong OOP

Tài liệu tham khảo:
  1. 8.3 Kế thừa trong Java là gì | Bài giảng | Hướng dẫn, Telusko Learning, ngày 15 tháng 5 năm 2014. Có sẵn tại đây  
  2. Đa hình trong Hướng dẫn Java, Telusko Learning, ngày 15 tháng 5 năm 2014. Có sẵn tại đây