Java Поліморфізм
Java Поліморфізм
Поліморфізм означає «багато форм», і він виникає, коли ми маємо багато класів, пов’язаних один з одним успадкуванням.
Як ми вказали в попередньому розділі; Спадкування дозволяє нам успадковувати атрибути та методи з іншого класу. Поліморфізм використовує ці методи для виконання різних завдань. Це дозволяє нам виконувати одну дію різними способами.
Наприклад, подумайте про суперклас під назвою Animal
, який має метод під назвою animalSound()
. Підкласами тварин можуть бути свині, коти, собаки, птахи. Вони також мають власну реалізацію звуку тварин (свиня хрюкає, а кіт нявкає тощо):
У наступному прикладі ми створюємо клас Animal за допомогою методу animalSound(). Потім ми створюємо два підкласи Animal: Pig та Cat, які успадковують клас Animal. Підкласи також мають власну реалізацію методу animalSound():
Приклад
class Animal {
public void animalSound() {
System.out.println("Тварина створює звук");
}
}
class Pig extends Animal {
public void animalSound() {
System.out.println("Свиня: хрю-хрю");
}
}
class Dog extends Animal {
public void animalSound() {
System.out.println("Собака: гав-гав");
}
}
Пам’ятайте з розділу Java Успадкування, що ми використовуємо ключове слово extends
для успадкування від класу.
Тепер ми можемо створити об’єкти Pig
та Dog
і викликати animalSound()
для обох методів:
Приклад
class Animal {
public void animalSound() {
System.out.println("Тварина створює звук");
}
}
class Pig extends Animal {
public void animalSound() {
System.out.println("Свиня: хрю-хрю");
}
}
class Dog extends Animal {
public void animalSound() {
System.out.println("Собака: гав-гав");
}
}
class Main {
public static void main(String[] args) {
Animal myAnimal = new Animal(); // Створити об’єкт Animal
Animal myPig = new Pig(); // Створити об’єкт Pig
Animal myDog = new Dog(); // Створити об’єкт Dog
myAnimal.animalSound();
myPig.animalSound();
myDog.animalSound();
}
}
Спробуйте самі »
Чому і де використовувати "Спадкування" та "Поліморфізм"?
- Це корисно для повторного використання коду: повторно використовуйте атрибути та методи існуючого класу під час створення нового класу.