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.