Java Polymorphism

Оновлено: 22.05.2023

Поліморфізм Java

Поліморфізм означає "багато форм", і він виникає, коли ми маємо багато класів, які пов'язані один з одним шляхом успадкування.

Як ми вже зазначали в попередньому розділі, успадкування дозволяє нам успадковувати атрибути та методи з іншого класу. Поліморфізм використовує ці методи для виконання різних завдань. Це дозволяє нам виконувати одну і ту ж дію різними способами.

Наприклад, уявіть собі суперклас Animal, який має метод animalSound(). Підкласами Animal можуть бути Pigs, Cats, Dogs, Birds - і вони також мають власну реалізацію звуку тварини (свиня хрюкає, кіт нявкає і т.д.):

class Animal {
  public void animalSound() {
    System.out.println("The animal makes a sound");
  }
}

class Pig extends Animal {
  public void animalSound() {
    System.out.println("The pig says: wee wee");
  }
}

class Dog extends Animal {
  public void animalSound() {
    System.out.println("The dog says: bow wow");
  }
}
Пам'ятайте з розділу Спадкування, що ми використовуємо ключове слово extends для успадкування від класу.

Тепер ми можемо створити об'єкти Pig та Dog і викликати метод animalSound() для них обох:

class Animal {
  public void animalSound() {
    System.out.println("The animal makes a sound");
  }
}

class Pig extends Animal {
  public void animalSound() {
    System.out.println("The pig says: wee wee");
  }
}

class Dog extends Animal {
  public void animalSound() {
    System.out.println("The dog says: bow wow");
  }
}

class Main {
  public static void main(String[] args) {
    Animal myAnimal = new Animal();  // Create a Animal object
    Animal myPig = new Pig();  // Create a Pig object
    Animal myDog = new Dog();  // Create a Dog object
    myAnimal.animalSound();
    myPig.animalSound();
    myDog.animalSound();
  }
}
Навіщо і коли використовувати "успадкування" і "поліморфізм"? - Це корисно для повторного використання коду: повторно використовувати атрибути і методи існуючого класу при створенні нового класу.