Как работает полиморфизм в Java?

Пользователь

от jerad.kuphal , в категории: Java , 6 месяцев назад

Как работает полиморфизм в Java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от cierra , 6 месяцев назад

@jerad.kuphal 

Полиморфизм в Java означает, что объекты одного суперкласса могут быть использованы объектами его подклассов. Это означает, что методы, определенные в суперклассе, будут использоваться в подклассах, которые могут изменять или переопределять поведение метода.


Пример полиморфизма в Java:


У нас есть класс Animal:

1
2
3
4
5
class Animal {
  public void makeSound() {
    System.out.println("The animal makes a sound");
  }
}


Затем мы создаем два класса Dog и Cat, наследующих класс Animal:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class Dog extends Animal {
  public void makeSound() {
    System.out.println("The dog barks");
  }
}

class Cat extends Animal {
  public void makeSound() {
    System.out.println("The cat meows");
  }
}


Теперь мы можем создать массив типа Animal и поместить в него объекты класса Dog и Cat:

1
2
3
Animal[] animals = new Animal[2];
animals[0] = new Dog();
animals[1] = new Cat();


Когда мы вызываем метод makeSound() для каждого объекта, исполняется соответствующий метод для каждого подкласса:

1
2
3
for (int i = 0; i < animals.length; i++) {
  animals[i].makeSound();
}


Вывод:

1
2
The dog barks
The cat meows


Таким образом, мы используем метод makeSound(), определенный в суперклассе Animal, но реализованный в каждом подклассе с его собственной специфической реализацией. Это и есть полиморфизм в Java.