Nạp chồng (Overloading) 1 Nạp chồng phương thức

Một phần của tài liệu Học lập trình Java qua ví dụ (Trang 90 - 92)

Chương 7: Thừakế và giao tiếp Mục tiêu bài học:

7.3Nạp chồng (Overloading) 1 Nạp chồng phương thức

Chương 7 Thừa kế và giao tiếp

91/114 Một số phương thức, có cùng tên nhưng khác tham số, khi được định nghĩa trong một lớp thì được gọi là nạp chồng phương thức (method overloading). Các phương thức nạp chồng không thể khác kiểu dữ liệu trả về. Chúng có thể khác số lượng tham số, khi đó, các tham số có thể cùng kiểu dữ liệu; hoặc cùng số lượng tham số với điều kiện các tham số này phải khác kiểu dữ liệu. Các phương thức có thể được nạp chồng thậm chí khi các tham số được truyền vào là các đối tượng của lớp. Xét ví dụ về phương thức được nạp chồng có số lượng các đối tượng truyền vào khác nhau. Cho lớp có tên Laboratory (phòng thí nghiệm) định nghĩa một phương thức nạp chồng có tên là makeCompound()

nhận các đối tượng Chemical (hóa chất) qua các tham số truyền vào. Đoạn mã 5 mô tả nạp chồng phương thức.

Đoạn mã 5:

class Laboratory {

public Compound makeCompound(Chemical a, Chemical b){ //Some application code here

}

public Compound makeCompound(Chemical a, Chemical b, Chemical c){

//Some application code here }

}

Ở đây, Chemical là lớp được tạo bởi chính ứng dụng nhưng vẫn có thể được dùng giống như các lớp dựng sẵn của Java (build-in Java). Do đó, các phương thức có thể được nạp chồng bằng cách truyền vào số lượng khác nhau các tham số có cùng kiểu dữ liệu.

Phương thức cũng có thể được nạp chồng bằng cách truyền vào số lượng cố định các tham số nhưng kiểu dữ liệu của tham số khác nhau. Đoạn mã 6 mô tả loại nạp chồng phương thức này.

Đoạn mã 6:

class Laboratory {

public Compound makeCompound(Chemical a, Chemical b, double quantityOfWater){

//Some application code here }

public Compound makeCompound(Chemical a, Chemical b, Chemical c){

//Some application code here }

}

Phương thức makeCompound được nạp chồng với ba tham số có kiểu dữ liệu khác nhau được truyền vào.

Một phần của tài liệu Học lập trình Java qua ví dụ (Trang 90 - 92)