Interfejsy (wprowadzenie i porównanie)
Zdefiniują Państwo interfejsy, zaimplementują je w klasach i porównają z klasami abstrakcyjnymi. Poznają metody domyślne i wielokrotną implementację.
Interfejsy (wprowadzenie i porównanie) to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 2 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 3 lekcji w sumie.
Czym jest interfejs?
Interfejs: kontrakt zawierający sygnatury metod, które klasa musi dostarczyć. Służy do opisywania możliwości, takich jak Drivable lub Printable, bez narzucania hierarchii klas.
Kod: implementacja interfejsu
Klasy implementują interfejsy, deklarując obsługę określonego zachowania. Można odwoływać się do obiektu za pomocą jego typu interfejsu i wywoływać zadeklarowane metody.
public class Main {
// Interface that declares a capability
static interface Drivable {
void drive(); // method to implement
}
// A class implements the interface
static class Car implements Drivable {
public void drive() {
System.out.println("Car is driving");
}
}
public static void main(String[] args) {
Drivable d = new Car(); // upcast to interface
d.drive(); // runs Car's method
}
}
Interfejsy a klasy abstrakcyjne
Klasa abstrakcyjna = relacja „jest” ze współdzielonym kodem. Interfejs = możliwość „potrafi”. Klasa może rozszerzać jedną klasę, ale implementować wiele interfejsów, co zapewnia elastyczność projektu i pozwala unikać głębokich hierarchii.
Kod: metoda domyślna
Interfejsy mogą zawierać metody default z kodem. Klasy implementujące interfejs automatycznie dziedziczą to niewielkie zachowanie.
public class Main {
// Interface with a default method (has a body)
static interface Greeter {
void greet(String name);
default void sayBye() { // default provides a reusable tiny implementation
System.out.println("Bye");
}
}
static class SimpleGreeter implements Greeter {
public void greet(String name) {
System.out.println("Hello, " + name);
}
}
public static void main(String[] args) {
Greeter g = new SimpleGreeter();
g.greet("Ada");
g.sayBye(); // default method from the interface
}
}
Wiele interfejsów
Klasa może jednocześnie implementować kilka interfejsów (np. Drivable i Maintainable). Pozwala to modelować możliwości bez wymuszania ustalonego łańcucha klas nadrzędnych.
Kod: wiele interfejsów
Jedna klasa implementuje oba interfejsy. W zależności od kontekstu można traktować ją jako Drivable, Maintainable lub jej konkretny typ.
public class Main {
static interface Drivable { void drive(); }
static interface Maintainable { void maintain(); }
static class ServiceCar implements Drivable, Maintainable {
public void drive() { System.out.println("ServiceCar driving"); }
public void maintain() { System.out.println("ServiceCar maintenance"); }
}
public static void main(String[] args) {
ServiceCar s = new ServiceCar();
s.drive();
s.maintain();
}
}
Sprawdzian dotyczący interfejsów
Szybkie sprawdzenie: Które stwierdzenie dotyczące interfejsów w języku Java jest prawdziwe?
Podsumowanie
Podsumowanie: Interfejsy definiują kontrakty zachowania, a klasy je implementują. W razie potrzeby należy używać metod domyślnych do udostępniania niewielkich fragmentów kodu i łączyć wiele możliwości w jednej klasie.
Często zadawane pytania
Czy lekcja „Interfejsy (wprowadzenie i porównanie)” jest bezpłatna?
Tak — pełny tekst „Interfejsy (wprowadzenie i porównanie)” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 3 lekcji w sumie.
Co nauczysz się w „Interfejsy (wprowadzenie i porównanie)”?
Zdefiniują Państwo interfejsy, zaimplementują je w klasach i porównają z klasami abstrakcyjnymi. Poznają metody domyślne i wielokrotną implementację. Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Java Academy?
Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 3.
Ile czasu zajmuje lekcja „Interfejsy (wprowadzenie i porównanie)”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?
Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Klasy abstrakcyjne
- Interfejsy (wprowadzenie i porównanie)
- Rzutowanie w górę i w dół oraz instanceof