Polimorfizm: zmienne typu Animal

Dziedziczenie i polimorfizm - Podstawy Javy (Java)

Polimorfizm: Polega na tym, że obiekty różnych klas pochodnych mogą być traktowane jak obiekty klasy bazowej. W powyższym przykładzie zmienne animal1 i animal2 są typu Animal, ale przechowują obiekty klas Dog i Cat. Podczas wywołania metody makeSound(), wykonywana jest odpowiednia wersja metody (nadpisana w klasach pochodnych). Dynamiczne wiązanie: W czasie wykonywania programu metoda jest wybierana na podstawie rzeczywistego typu obiektu, a nie zmiennej, która go przechowuje.

// Klasa bazowa
class Animal {
  // Metoda klasy bazowej
  public void makeSound() {
    System.out.println("Zwierzę wydaje dźwięk.");
  }
}

// Klasa pochodna
class Dog extends Animal {
  // Nadpisywanie metody makeSound
  @Override
  public void makeSound() {
    System.out.println("Pies szczeka: Woof! Woof!");
  }
}

// Klasa pochodna
class Cat extends Animal {
  // Nadpisywanie metody makeSound
  @Override
  public void makeSound() {
    System.out.println("Kot miauczy: Meow! Meow!");
  }
}

// Klasa główna
public class Main {
  public static void main(String[] args) {
    // Polimorfizm w akcji
    Animal animal1 = new Dog(); // Obiekt klasy Dog, widziany jako Animal
    Animal animal2 = new Cat(); // Obiekt klasy Cat, widziany jako Animal

    // Wywoływanie metody makeSound
    animal1.makeSound(); // Wywołuje metodę Dog
    animal2.makeSound(); // Wywołuje metodę Cat
  }
}

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Podstawy Javy · Zaloguj się, aby zapisać postęp na koncie.