Samouczki Java

Jawa DOM Wprowadzenie do Javy Rozpocznij Java Składnia Javy Komentarze Java Zmienne Javy Typy danych Java Rzutowanie typu Java Operatory Java Ciągi Java Matematyka Java Java logiczne Java, jeśli...inne Przełącznik Java Java podczas pętli Java dla pętli Przerwa/Kontynuacja w Javie Tablice Java

Metody Java

Metody Java Parametry metody Java Przeciążanie metody Java Zakres Java Rekurencja Java

Klasy Java

Java OOP Klasy/obiekty Java Atrybuty klas Java Metody klas Java Konstruktory Javy Modyfikatory Java Enkapsulacja Javy Pakiety Java / API Dziedziczenie Javy Polimorfizm Javy Klasy wewnętrzne Java Abstrakcja Java Interfejs Java Wyliczenia Java Wejście użytkownika Java Data Java Lista tablic Java Połączona lista Java Java HashMap Zestaw skrótów Java Iterator Javy Klasy opakowujące Java Wyjątki Java Java RegEx Wątki Java Jawa Lambda

Obsługa plików Java

Pliki Java Tworzenie/zapis plików Java Odczytywanie plików Java Usuń pliki Java

Jak to zrobić

Dodaj dwie liczby

Odniesienie do Javy

Słowa kluczowe Java Metody ciągów Java Metody matematyczne w języku Java

Przykłady Javy

Przykłady Javy Kompilator Javy Ćwiczenia Java Quiz Java Certyfikat Java


Dziedziczenie Javy


Dziedziczenie Java (podklasa i nadklasa)

W Javie możliwe jest dziedziczenie atrybutów i metod z jednej klasy do drugiej. Grupujemy „koncepcję dziedziczenia” na dwie kategorie:

  • subclass (child) - klasa, która dziedziczy z innej klasy
  • superclass (parent) - klasa, z której jest dziedziczona

Aby dziedziczyć z klasy, użyj extends słowa kluczowego.

W poniższym przykładzie Carklasa (podklasa) dziedziczy atrybuty i metody z Vehicleklasy (superklasa):

Przykład

class Vehicle {
  protected String brand = "Ford";        // Vehicle attribute
  public void honk() {                    // Vehicle method
    System.out.println("Tuut, tuut!");
  }
}

class Car extends Vehicle {
  private String modelName = "Mustang";    // Car attribute
  public static void main(String[] args) {

    // Create a myCar object
    Car myCar = new Car();

    // Call the honk() method (from the Vehicle class) on the myCar object
    myCar.honk();

    // Display the value of the brand attribute (from the Vehicle class) and the value of the modelName from the Car class
    System.out.println(myCar.brand + " " + myCar.modelName);
  }
}

Czy zauważyłeś protectedmodyfikator w pojeździe?

Ustawiamy atrybut marki w pojeździe na protected modyfikator dostępu . Gdyby był ustawiony na private, klasa Car nie miałaby do niego dostępu.

Dlaczego i kiedy używać „dziedziczenia”?

- Przydaje się do ponownego wykorzystania kodu: ponownie używaj atrybutów i metod istniejącej klasy podczas tworzenia nowej klasy.

Wskazówka: spójrz również na następny rozdział, Polimorfizm , który wykorzystuje odziedziczone metody do wykonywania różnych zadań.


Ostatnie słowo kluczowe

Jeśli nie chcesz, aby inne klasy dziedziczyły po klasie, użyj finalsłowa kluczowego:

Jeśli spróbujesz uzyskać dostęp do finalklasy, Java wygeneruje błąd:

final class Vehicle {
  ...
}

class Car extends Vehicle {
  ...
}

Wynik będzie wyglądał mniej więcej tak:

Main.java:9: error: cannot inherit from final Vehicle
class Main extends Vehicle {
                  ^
1 error)