Tôi muốn có một hàm tạo như sau.Java: thêm hai giá trị cùng loại mà cả hai đều là lớp con của java.lang.Number
public Attribute(String attrName, Number attrValue){
this.name = attrName;
this.value = attrValue;
}
Trong trường hợp này, tôi muốn có phương thức được gọi là incrementValue (Số n) sẽ thêm n vào giá trị. Tôi biết bạn không thể thêm hai đối tượng Số cùng nhau do các vấn đề có thể xảy ra khi truyền. Tuy nhiên, nếu tôi sử dụng một kiểm tra để đảm bảo giá trị và n là cùng một loại là nó có thể thêm chúng lại với nhau? Hoặc có lẽ có một cách tốt hơn để đi về điều này.
Ngay bây giờ tôi đang khai báo các biến mẫu của Integer và Double và gán giá trị cho đúng loại. Tôi đã tự hỏi về việc mở rộng điều này để cho phép bất kỳ phân lớp con nào của Number. Rõ ràng là tôi có thể viết các phương pháp riêng biệt cho từng phương pháp nhưng điều đó có vẻ như lập trình kém.
Điều này có thể thực hiện được trong java không? Tôi đang đi về điều này hoàn toàn sai?
Điều gì biện minh cho việc sử dụng siêu lớp trừu tượng 'Số'. Bạn đang sử dụng các lớp con cụ thể hơn nữa trong chế độ thừa kế của bạn? – Perception
@Perception Tôi muốn cho phép nhiều loại nhất có thể như tôi có thể cho phép vì đây là thực hành/vui vẻ và có thể muốn mở rộng sau này. – thealfreds