Các phương thức overloaded trong Java

Các phương thức overloaded trong Java là những phương thức có cùng tên nhưng khác nhau ở danh sách các tham số. Trong bài viết này chúng ta sẽ cùng tìm hiểu làm thế nào để tạo và sử dụng các phương thức overloaded trong Java các bạn nhé!

Một số các nguyên tắc dưới đây để chúng ta xác định các phương thức overloaded:

  • Các phương thức overloaded phải cùng tên nhưng khác nhau ở các tham số.
  • Chúng có thể được định nghĩa cùng hoặc khác kiểu dữ liệu trả về.
  • Chúng có thể được định nghĩa cùng hoặc khác access modifier.
  • Các phương thức không được gọi là overloaded nếu chúng chỉ khác nhau ở kiểu dữ liệu trả về hoặc access modifier.

Ví dụ dưới đây chúng ta có hai phương thức overloaded cùng tên printMessage():

Và cùng có một tham số nhưng kiểu dữ liệu của những tham số đó thì khác nhau: một kiểu String, một kiểu int.


Các tham số trong các phương thức overloaded

Danh sách các tham số trong các phương thức overloaded phải khác nhau, điều này có nghĩa;

  • Số lượng các tham số khác nhau.

Ví dụ:

  • Số lượng các tham số có thể giống nhau nhưng khác nhau về kiểu dữ liệu theo thứ tự danh sách các tham số.

Ví dụ:

Có một điều các bạn phải lưu ý là có những kiểu dữ liệu có thể chuyển đổi sang những kiểu dữ liệu khác ví dụ từ kiểu int chuyển sang double nên mặc dù chúng ta có thể khai báo các phương thức overloaded với chúng nhưng khi sử dụng có những trường hợp chúng ta sẽ bị lỗi compile.

Ví dụ, mình có hai phương thức printMessage được định nghĩa như sau:

Nhưng khi sử dụng trong trường hợp dưới đây sẽ bị lỗi compile:

Các phương thức overloaded trong Java

Vì kiểu int có thể chuyển đổi qua kiểu double nên trong trường hợp này compiler không biết chúng ta đang gọi phương thức nào.

Để có thể sử dụng được, chúng ta cần khai báo rõ ràng kiểu dữ liệu mà chúng ta truyền vào như sau:

Các phương thức overloaded trong Java


Kiểu dữ liệu trả về

Các phương thức không được gọi là overloaded nếu chúng chỉ khác nhau ở kiểu dữ liệu trả về và trong trường hợp này code của chúng ta cũng không thể compile luôn.

Ví dụ:

Các phương thức overloaded trong Java


Access modifier

Tương tự như kiểu dữ liệu trả về, các phương thức cũng không gọi là overloaded nếu chúng chỉ khác nhau ở access modifier và code của chúng ta cũng bị lỗi compile nếu chúng ta định nghĩa như thế luôn.

Ví dụ:

Các phương thức overloaded trong Java

5/5 - (1 bình chọn)

One thought on “Các phương thức overloaded trong Java

  1. cái overloaded này có khác gì với cái this. trong java không anh
    em thấy bên hàm main gọi và đều có đối số truyền vào
    tác dụng sử dụng overloaded là gì ad.
    e cảm ơn nhiều ạ

Add Comment