Interfejs w ktorym jest atrybut no-final

0

Czesc wszystkim,

Jak wiadomo każdy atrybut utworzony w interfejsie domyślnie jest publiczny, statyczny i ostateczny/finalny ale czy mogę utworzyć atrybut który nie będzie finalny tzn. który będę mógł zmienić z poziomu klasy implementującej ten interfejs ?

0

a zamiast kombinować, nie można by implementować jakiś potomny interfejs?

0

Nie, wszystkie pola w interfejsach są final nawet jeżeli nie napisze "final".

Jeżeli jakaś wartość musi się różnić przy różnych implementacjach, to dodaj do interfejsu metodę getStala() i zaimplementuj ją odpowiednio w klasach.

0

To jest mój projekt który w c++ jest już kompletny z javy zostało mi tylko to, jedna z klas zamieniła się w interface (troche na siłę, ale wymaganie na jego obecność jest spełnione) zawarte w nim atrybuty używam pare razy w programie i chciałbym móc je modyfikować, to jest wszystko tak na siłę, że tu naprawde nie chodzi o to by kod byl dopięty na ostatni guzik. Sam eclipse mi podpowiada remove final from interface ale jak klikam to mnie tylko do niego odsyła i czeka az cos wpisze ... chyba

0

Nie mogłem znaleźć przycisku do edycji posta, chyba jako osoba bez konta nie mam takiej możliwości.

a czy mogę utworzyć interfejs w którym będę jakoś przechowywał zmienne ? to oczywiście przeczy logice tworzenia interfejsu, ale czy da radę tak zrobić ?

0

Język Java nie przewiduje takich rzeczy.

Z drugiej strony możesz wstawić abstrakcyjne gettery i settery, a potem je implementować we wszystkich klasach implementujących.

0

Zmień sobie ten interfejs w klasę abstrakcyjną i po problemie. Gdyby z tego powodu zrobiła się konieczność dziedziczenia wielobazowego, to zrobisz sobie klasę wewnętrzną i niech ona dziedziczy, a jej metody możesz sobie delegować do klasy zewnętrznej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1