Sự khác biệt giữa quá tải và ghi đè trong Java

Sự khác biệt chính - Quá tải so với ghi đè trong Java
 

Lập trình hướng đối tượng (OOP) là một mô hình chính trong phát triển phần mềm. Đây là một phương pháp để thiết kế một chương trình sử dụng các lớp và các đối tượng. Một lớp học là một kế hoạch chi tiết. Nó mô tả những gì nên chứa trong đối tượng. Nó định nghĩa các thuộc tính hoặc thuộc tính và các phương thức mà đối tượng nên bao gồm. Do đó, một đối tượng là một thể hiện của một lớp. Những đối tượng này giao tiếp với các đối tượng khác. Một khái niệm chính của OOP là Đa hình. Đó là khả năng cho một đối tượng hành xử theo nhiều cách. Đa hình được phân loại thành hai phần đang quá tải và ghi đè. Bài viết này thảo luận về sự khác biệt giữa hai cái này trong Java. Các sự khác biệt chính giữa quá tải và ghi đè trong Java là Quá tải là khả năng tạo nhiều phương thức cùng tên với các triển khai khác nhau và Ghi đè là để cung cấp một triển khai cho một phương thức lớp con đã tồn tại trong lớp cha.

NỘI DUNG

1. Tổng quan và sự khác biệt chính
2. Quá tải trong Java là gì
3. Ghi đè trong Java là gì
4. Điểm tương đồng giữa quá tải và ghi đè trong Java
5. So sánh cạnh nhau - Quá tải so với ghi đè trong Java ở dạng bảng
6. Tóm tắt

Quá tải trong Java là gì?

Quá tải là khả năng tạo ra nhiều phương thức cùng tên với các cách triển khai khác nhau. Tham khảo mã Java bên dưới.

Hình 01: Chương trình Java giải thích Quá tải với số lượng đối số khác nhau

Theo chương trình trên, lớp A chứa hai phương thức có cùng tên. Phương thức tổng đầu tiên có hai tham số. Phương pháp tổng thứ hai có ba tham số. Khi tạo một đối tượng loại A và gọi tổng (2,3), nó sẽ gọi phương thức sum với hai tham số là sum (int a, int b) và trả về 5. Khi tạo một đối tượng loại A và gọi tổng (2 , 3,4), nó sẽ gọi phương thức sum khác với ba tham số là tổng (int a, int b, int c) và trả về 9.

Tên phương thức là như nhau nhưng số lượng tham số là khác nhau. Có thể thấy rằng cùng một đối tượng đang hành xử khác nhau. Khái niệm này được gọi là quá tải. Nó cũng được gọi là Liên kết tĩnh hoặc là Biên dịch đa hình thời gian.

Cũng có thể bị quá tải với các loại dữ liệu khác nhau. Tham khảo mã Java bên dưới.

Hình 02: Chương trình Java giải thích Quá tải với số lượng đối số khác nhau

Theo chương trình trên, lớp A bao gồm hai phương thức có cùng tên. Phương thức sum (int a, int b) nhận hai giá trị nguyên. Tổng (gấp đôi một b) nhận hai giá trị kép. Khi tạo đối tượng loại A và gọi tổng (2,3), nó sẽ gọi tổng (int a, int b) và trả về giá trị 5. Khi gọi tổng (3,4, 5.6), nó sẽ gọi tổng (nhân đôi b) và trả về giá trị 9.0. Trong ví dụ này, các phương thức có cùng tên, nhưng một loại biến khác nhau. Điều này cũng quá tải.

Ghi đè trong Java là gì?

Trong Java, có thể xây dựng các lớp con với các lớp đã có sẵn. Thay vì tạo lớp mới ngay từ đầu, có thể sử dụng các thuộc tính và phương thức của lớp đã tồn tại. Lớp hiện tại là siêu lớp và lớp dẫn xuất là lớp con. Khi lớp con cung cấp một triển khai cho một phương thức, đã có trong lớp cha, nó được gọi là ghi đè. Tham khảo chương trình Java bên dưới.

Hình 03: Chương trình Java để ghi đè

Theo chương trình trên, lớp A đang có phương thức hiển thị (). Lớp B đang mở rộng từ lớp A, do đó 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. Lớp B có phương thức hiển thị () với cách triển khai cụ thể. Khi tạo một đối tượng loại, A và gọi phương thức hiển thị, nó sẽ cho đầu ra B. Mặc dù lớp A có phương thức hiển thị, nhưng nó bị ghi đè là phương thức hiển thị lớp B. Lớp con đang thực hiện một phương thức đã tồn tại trong lớp cha.

Khái niệm này là một loại đa hình và được gọi là ghi đè. Nó cũng được gọi là Ràng buộc muộn, Liên kết động, Đa hình thời gian chạy.

Điểm giống nhau giữa quá tải và ghi đè trong Java là gì?

  • Cả hai đều là loại đa hình.
  • Trong quá tải và ghi đè, các phương thức có cùng tên.

Sự khác biệt giữa quá tải và ghi đè trong Java là gì?

Quá tải so với ghi đè trong Java

Quá tải trong Java là khả năng tạo nhiều phương thức cùng tên với các cách triển khai khác nhau. Ghi đè trong Java là cung cấp một triển khai cụ thể trong phương thức lớp con cho một phương thức đã tồn tại trong lớp cha.
 Thông số
Trong quá tải, các phương thức có cùng tên nhưng một số tham số khác nhau hoặc một loại tham số khác. Trong phần ghi đè, các phương thức có cùng tên và tham số phải giống nhau.
Chủ đề
Quá tải xảy ra trong lớp. Ghi đè xảy ra trong hai lớp có mối quan hệ thừa kế.
 Từ đồng nghĩa
Quá tải được gọi là đa hình thời gian biên dịch. Ghi đè được gọi là đa hình thời gian chạy.

Tóm tắt - Quá tải so với ghi đè trong Java

Đa hình là một khái niệm chính trong lập trình hướng đối tượng. Nó cung cấp khả năng cho một đối tượng hành xử theo nhiều cách. Điều này có thể là quá tải hoặc ghi đè. Quá tải là đa hình thời gian biên dịch, và ghi đè là đa hình thời gian chạy. Chúng rất hữu ích trong việc phát triển ứng dụng phần mềm. Sự khác biệt giữa ghi đè và quá tải là Quá tải là khả năng tạo nhiều phương thức cùng tên với các triển khai khác nhau và Ghi đè đang cung cấp một triển khai cụ thể trong phương thức lớp con cho một phương thức đã tồn tại trong lớp cha. Có thể thực hiện cả quá tải và ghi đè trong Java.

Tải xuống quá tải PDF so với ghi đè trong Java

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 quá tải và ghi đè trong Java

Tài liệu tham khảo:

1.tutorialspoint.com. Java ghi đè. Điểm. Có sẵn ở đây 
2. Phương thức quá tải trong Java - Javatpoint. Có sẵn ở đây
3. Phương thức ghi đè trong Java - javatpoint. Có sẵn ở đây