각진 세상에 둥근 춤을 추자

[Java] 다형성 본문

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();
	}
	
}