Aynı soyut sınıfı genişleten iki sınıfa sahibim. Her ikisi de aynı sabite, ama farklı değerlere ihtiyaç duyarlar. Bunu nasıl yapabilirim? Ne yapmak istediğimi göstermek için bazı örnek kod.Java'da Sabitleri Geçersiz Kılma
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
}
Yukarıdaki kod, CONST başlangıç int sınıfı A olmadığı için derleme yapmıyor. Bunu nasıl çalıştırabilirim? CONST değeri, B'nin tüm örnekleri için 1, C'nin tüm örnekleri için 2, A'nın tüm örnekleri için 1 veya 2 olmalıdır. Bunun için statiğin kullanılmasının herhangi bir yolu var mı?
Teşekkür ederiz! Sadece statik kullanabilmeyi diliyorum, çünkü değerler B örneğinin diğerinden farklı değildir. – Fractaly
@Fractaly: Ancak, "A" örneğinden diğerine farklılık gösteriyorlar. –
, A özetinde getConst() yöntemini kullanmamalıdır? – Fractaly