Wskaż prawidłową definicję interfejsu (szablonu klasy) w języki Java
Wskaż prawidłową definicję interfejsu (szablonu klasy) w języki Java
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: D (Definicja 4)
Uzasadnienie i szersze wyjaśnienie:
W języku Java, interfejs to typ referencyjny, który może zawierać wyłącznie stałe, metody domyślne, metody statyczne oraz metody abstrakcyjne. Tradycyjnie, do wersji Java 7, interfejsy mogły zawierać tylko stałe i metody abstrakcyjne. Kluczowe zasady dotyczące metod w interfejsach (przed Java 8) to:
- Wszystkie metody są domyślnie publiczne i abstrakcyjne. Oznacza to, że nie trzeba (i nie można było) pisać słów kluczowych
publiciabstract. - Metody w interfejsie nie mogą mieć implementacji (ciała). Deklaracja metody musi kończyć się średnikiem.
- Interfejsy nie mogą zawierać pól instancji (zmiennych). Mogą zawierać tylko stałe (domyślnie
public static final). - Interfejsy nie mogą mieć konstruktorów.
Przeanalizujmy podane definicje:
- Definicja 4: Zawiera dwie deklaracje metod (
mth1,mth2) bez ciał, zakończone średnikami. Jest to prawidłowa definicja interfejsu w Javie.
Dlaczego pozostałe odpowiedzi są nieprawidłowe?
- Definicja 1: Zawiera prywatne pole (
private int a) oraz konstruktor (IMyInterface()), co jest niedozwolone w interfejsach. - Definicja 2: Zawiera prywatne pole oraz metodę z implementacją (
int mth2() { ... }), co jest niedozwolone (chyba że byłaby to metodadefaultlubstaticw Javie 8+, ale składnia tu na to nie wskazuje). - Definicja 3: Zawiera metodę z implementacją (
int mth2() { ... }), co jest niedozwolone w klasycznym ujęciu interfejsu.
Chcesz poćwiczyć całą kwalifikację INF.04?
Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.
Pojęcia z tego pytania
- Pakowanie i rozpakowywanie (Boxing & Unboxing)Boxing to konwersja typu wartościowego (np. int, struct) na typ referencyjny (object na stercie), a Unboxing to odwrotna konwersja z rzutowaniem.
- Język programowania JavaW pełni obiektowy język programowania kompilowany do kodu bajtowego (bytecode), wykonywanego przez Wirtualną Maszynę Javy (JVM) zgodnie z regułą WORA ('Napisz raz, uruchamiaj wszędzie').
- Interfejs (Interface)Czysty kontrakt określający zestaw sygnatur metod i właściwości bez pól stanu, który klasa implementująca musi w całości zrealizować.
Podobne pytania z działu „Interfejsy i klasy abstrakcyjne”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 17 pytań z tego działu.
- #167
Z której kolekcji należy skorzystać, aby przechowywać dane związane z elementem interfejsu użytkownika tak, aby element był ten informowany przez kolekcję o dodaniu, usunięciu lub zmianie jej elementu
- #172
W przedstawionym filmie ukazano kreator interfejsu użytkownika, dla którego automatycznie powstaje
- #175
Kod w języku JavaScript jest
- #221
Framework to
- #224
Jednostką zalecaną przy tworzeniu układu interfejsu aplikacji jest