2011-08-18 35 views
5

Khi lớp cha có phương thức add với 2 tham số, Nếu chúng ta thêm phương thức add mới với 3 tham số trong lớp con, chúng ta sẽ gọi nó là quá tải?Làm rõ quá tải

Xin cảm ơn trước.

+0

Yes. Ngược lại với trọng số. – Ingo

Trả lời

6

Có, vì phương thức có hai tham số được thừa kế bởi lớp con, phương thức có ba tham số được gọi là phương thức nạp chồng.

class A 
    add(param1, param2) 

class B 
    add(param1, param2)   <-- inherited 
    add(param1, param2, param3) <-- overloading the above method 

Một trích dẫn từ đường mòn chính thức về Overriding and Hiding Methods:

Lưu ý: Trong một lớp con, bạn có thể quá tải các phương pháp kế thừa từ lớp cha. Các phương thức bị quá tải này không ẩn hoặc ghi đè lên các phương thức siêu lớp — chúng là các phương thức mới, duy nhất cho lớp con.

(Như bạn có thể đã tìm ra, các phương pháp với ba lớp không phải là một phương pháp trọng.)

3

Quá tải là khi phương pháp có TÊN TÊN nhưng CHỮ KÝ KHÁC. Ghi đè - khi các phương thức có TÊN ĐỘC ĐÁO và CHỮ KÝ Ý KIẾN.

5

Có, đây là quá tải. Nó sẽ bị quá tải ngay cả khi phương thức nằm trong cùng một lớp với phương thức có hai tham số.

Lưu ý rằng khi có nhiều số lượng tham số khác nhau (và không có thông số chênh lệch) quá tải đơn giản là hợp lý. Nó trở nên phức tạp hơn nhiều khi bạn có các phương thức có cùng số tham số - tại thời điểm đó trình biên dịch phải chọn phương thức "tốt nhất" trong các phương thức ứng cử viên áp dụng.

Cũng lưu ý rằng quá tải được xác định tại thời gian biên dịch trong khi đó override được thực hiện được xác định tại thời gian thực hiện dựa trên các loại thực tế của đối tượng phương pháp này được gọi vào.

1

Nếu tên phương thức đã tồn tại nhưng các tham số khác nhau, thì có, đây là quá tải.

2

Có chắc chắn là một quá tải và một tính năng tốt đẹp của thừa kế.

0

yep ... đó là phương pháp quá tải ngay cả khi phương pháp nằm trong cùng một lớp.

ps: i giả phương pháp mới với ba thông số có tên giống hệt nhau và kiểu trả