Tôi có hai lớp mở rộng cùng một lớp trừu tượng. Cả hai đều cần cùng một hằng số, nhưng với các giá trị khác nhau. Tôi có thể làm cái này như thế nào? Một số mã ví dụ để hiển thị những gì tôi muốn làm.Các hằng số ghi đè trong Java
abstract class A {
public static int CONST;
}
public class B extends A {
public static int CONST = 1;
}
public class C extends A {
public static int CONST = 2;
}
public static void main(String[] args){
A a = new B();
System.out.println(a.CONST); // should print 1
}
Đoạn mã trên không biên dịch vì CONST không được khởi tạo int class A. Tôi làm cách nào để nó hoạt động? Giá trị của CONST phải là 1 cho tất cả các phiên bản của B và 2 cho tất cả các phiên bản của C và 1 hoặc 2 cho tất cả các trường hợp A. Có cách nào để sử dụng số liệu thống kê cho điều này không?
Cảm ơn bạn! Tôi chỉ ước rằng tôi có thể sử dụng tĩnh, bởi vì các giá trị không khác nhau từ một trong những ví dụ của B khác. – Fractaly
@Fractaly: Nhưng chúng thay đổi từ thể hiện của 'A' sang cái khác. –
không nên getConst() trong A trừu tượng? – Fractaly