0Pricing
Java Academy · Lekcja

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

  1. Klasy abstrakcyjne
  2. Interfejsy (wprowadzenie i porównanie)
  3. Rzutowanie w górę i w dół oraz instanceof
← Powrót do Java Academy