extends i super
Wykorzystają Państwo extends do ponownego użycia klasy bazowej, a super do wywoływania konstruktora lub metod klasy nadrzędnej. Przykłady pozostaną niewielkie i czytelne.
extends i super to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 1 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 dziedziczenie?
Dziedziczenie pozwala klasie ponownie wykorzystywać i rozszerzać inną klasę. Klasa potomna otrzymuje pola i metody klasy nadrzędnej, a także może dodawać własne. Dziedziczenie służy do współdzielenia wspólnego kodu przez podobne typy.
Używanie extends
Słowa kluczowego extends należy użyć do utworzenia podklasy. Przykładowy pomysł: class Car extends Vehicle. Podklasa jest konkretnym rodzajem klasy nadrzędnej i może ponownie wykorzystywać jej zachowanie.
super(...) w konstruktorach
W konstruktorze klasy potomnej wywołanie super(...) uruchamia konstruktor klasy nadrzędnej. Najpierw inicjalizuje ono część odziedziczoną po klasie nadrzędnej. Jeśli nie zostanie wywołane jawnie, Java domyślnie wywoła konstruktor klasy nadrzędnej bez argumentów, jeśli taki konstruktor istnieje.
super.method()
Można również napisać super.someMethod(), aby użyć wersji metody z klasy nadrzędnej. Jest to przydatne, gdy klasa potomna chce dodać niewielkie zachowanie wokół logiki bazowej.
Kiedy używać dziedziczenia
Dziedziczenia należy używać przy wyraźnej relacji is-a: Car jest Vehicle. Jeśli chodzi tylko o ponowne wykorzystanie funkcjonalności bez właściwej relacji is-a, należy wybrać kompozycję. W przypadku osób początkujących drzewa klas powinny być płytkie.
Kod: extends i super
Kod: Car extends Vehicle. Konstruktor wywołuje super, aby ustawić brand. Metoda klasy potomnej wywołuje super.printInfo(), a następnie dodaje własny wiersz.
public class Main {
// Base class with a simple constructor and method
static class Vehicle {
String brand;
Vehicle(String brand) {
this.brand = brand; // parent sets its own field
}
void printInfo() {
System.out.println("Vehicle brand: " + brand);
}
}
// Subclass reuses Vehicle with extends
static class Car extends Vehicle {
int doors;
Car(String brand, int doors) {
super(brand); // call parent constructor first
this.doors = doors;
}
void printInfo() {
// Add extra info, but reuse parent behavior
super.printInfo(); // call parent method
System.out.println("Doors: " + doors);
}
}
public static void main(String[] args) {
// Create a Car (which is a Vehicle)
Car c = new Car("EcoMotors", 4);
c.printInfo(); // shows parent info then child info
}
}
Sprawdzenie super(...)
Szybkie sprawdzenie: Co robi wywołanie super(...) wewnątrz konstruktora podklasy?
Podsumowanie
Podsumowanie: extends ustanawia relację is-a, super(...) inicjalizuje klasę nadrzędną, a super.method() ponownie wykorzystuje logikę bazową. Należy preferować płytkie i proste hierarchie.
Często zadawane pytania
Czy lekcja „extends i super” jest bezpłatna?
Tak — pełny tekst „extends i super” 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 „extends i super”?
Wykorzystają Państwo extends do ponownego użycia klasy bazowej, a super do wywoływania konstruktora lub metod klasy nadrzędnej. Przykłady pozostaną niewielkie i czytelne. Ć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 1 z 3.
Ile czasu zajmuje lekcja „extends i super”?
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
- extends i super
- Przesłanianie metod
- Polimorfizm i wiązanie dynamiczne