Czy interfejs ma dostęp do pól/metod klasy która go implementuje ?

Czy interfejs ma dostęp do pól/metod klasy która go implementuje ?
RA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

Witam
Mam pytanko jak z poziomu interfejsu który jest implementowany w mojej klasie sprawdzić w metodzie jakieś pole i przykładowo je porównać ? Ta konstrukcja nie działa ale jak w metodzie defaultowej można i czy można badać jakoś obiekty(ich pola) klas które implementują dany interfejs.
Dzieki za ewentualne odpowiedzi.
Pozdrawiam

Kopiuj
public class Hero  implements Cloneable, JakisInterfejs {
    private String name;
    private int life;

... konstruktor, getery i inne metody...
}

public interface JakisInterfejs {
    default boolean vis(){
        if (getName().equals("Pattern")) return true;
        return false;
    }
}
Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

i czy można badać jakoś obiekty(ich pola) klas które implementują dany interfejs.

Nie powinno się tak robić (poczytaj o zasadach SOLID) - jeśli jednak z jakiegoś powodu musisz, masz w aplikacji błąd projektowy.
Opisz konkretniej, co chcesz osiągnąć.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1

Możesz w tym swoim przykładzie w interfejsie JakisInterfejs zrobić metodę getName() którą każda subklasa musi implementować i wtedy to zadziała.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.