НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
Мова програмування Java. W3Schools українською. Уроки для початківців

En

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();
  }
}
Спробуйте самі »

Чому і де використовувати "Спадкування" та "Поліморфізм"?

- Це корисно для повторного використання коду: повторно використовуйте атрибути та методи існуючого класу під час створення нового класу.