Mam klasę abstrakcyjną, w której chcę zadeklarować zmienne końcowe.Jak zdefiniować stałe/ostateczne zmienne w abstrakcyjnych klasach nadrzędnych, ale przypisać je do podklasy?
Jednak chcę przypisać wartości do tych zmiennych tylko w konstruktorach moich podklas.
Najwyraźniej nie jest to możliwe, ponieważ wszystkie "ostatnie pola muszą zostać zainicjalizowane". Nie rozumiem dlaczego, skoro i tak nie jest możliwe stworzenie klasy abstrakcyjnej.
Co chciałbym mieć to coś takiego:
abstract class BaseClass {
protected final int a;
}
class SubClass extends BaseClass {
public SubClass() {
a = 6;
}
}
sobie wyobrazić coś podobnego do metod podczas implementować interfejs. Następnie jesteś zmuszony do wdrożenia metod w klasie (pod-).
Jak ustawić 'a' w konkretnej podklasie zachowując ją' final'. – Jack
jeśli ustawisz jako ostateczny, dlaczego potrzebujesz superklasy, aby ją zawrzeć? nie możesz po prostu zdefiniować go w podklasie? – Gianmarco