Java -полиморфизм
Java-полиморфизм
Полиморфизм означает «много форм», и он возникает, когда у нас есть много классов, связанных друг с другом путем наследования.
Как мы указали в предыдущей главе; Наследование позволяет нам наследовать атрибуты и методы другого класса. Полиморфизм использует эти методы для выполнения различных задач. Это позволяет нам выполнять одно и то же действие разными способами.
Например, подумайте о суперклассе с именем Animal
, который имеет метод с именем 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");
}
}
Помните из главы «Наследование» , что мы используем 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();
}
}
Зачем и когда использовать «наследование» и «полиморфизм»?
- Это полезно для повторного использования кода: повторно используйте атрибуты и методы существующего класса при создании нового класса.