BACKEND/Java
[Java] 다형성
circle.j
2022. 9. 19. 23:47

다형성(polymorphism)은 프로그래밍 언어에서 하나의 식별자로 여러 개의 작업을 처리하는 것을 의미한다.
앞서 배운 ‘메소드 오버로딩', ‘메소드 오버라이딩'을 포함해 ‘제네릭 프로그래밍'도 다형성이라 할 수 있다.

예를 들어 그림과 같이 3개의 클래스가 Animal 클래스를 상속받고 있는 경우가 있다.
Animal 클래스에서 메서드를 하나 정의하고 상속 받은 클래스에서 재정의하는 프로그램을 작성해 본다.
package ch08_4;
class Animal{
public void move() {
System.out.println("동물이 움직입니다.");
}
}
class Human extends Animal{
public void move() {
System.out.println("사람이 두 발로 걷습니다.");
}
}
class Tiger extends Animal{
public void move() {
System.out.println("호랑이가 네 발로 뜁니다.");
}
}
class Eagle extends Animal{
public void move() {
System.out.println("독수리가 하늘을 납니다.");
}
}
public class AnimalTest1 {
public static void main(String[] args) {
AnimalTest1 t = new AnimalTest1();
t.moveAnimal(new Human());
t.moveAnimal(new Tiger());
t.moveAnimal(new Eagle());
}
public void moveAnimal(Animal animal) {
animal.move();
}
}
