각진 세상에 둥근 춤을 추자
[Java] 다형성 본문
다형성(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();
}
}
'Java' 카테고리의 다른 글
[Java] 다형성 활용하기 (0) | 2022.09.20 |
---|---|
[Java] 다형성 - VIP 고객 클래스 (0) | 2022.09.20 |
[Java] 메소드 오버라이딩 (0) | 2022.09.19 |
[Java] 상속 - 고객 관리 프로그램 (0) | 2022.09.19 |
[Java] ArrayList - 학생 성적 출력 프로그램 (0) | 2022.09.19 |