본문 바로가기
JAVA

[JAVA] 다형성 (Polymorphism)

by watergrace2u 2022. 3. 24.
반응형
SMALL

- 하나의 코드가 여러가지 자료형으로 구현되어 실행되는 것

- 정보은닉, 상속과 더불어 객체지향 프로그래밍의 가장 큰 특징 중 하나

- 객체지향 프로그래밍의 유연성, 재활용성, 유지보수성에 기본이 되는 특징

 

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 AnimalTest {
	public static void main(String [] args) {
		AnimalTest test = new AnimalTest();
		test.moveAnimal(new Human());
		test.moveAnimal(new Tiger());
		test.moveAnimal(new Eagle());
	}
	
	public void moveAnimal(Animal animal) {
		animal.move();
	}
}

 

출력 결과

animal.move() 라는 코드 한 줄인데, 결과는 다양하다 => 다형성

 

cf. do it 자바 인프런 강의

반응형
LIST

'JAVA' 카테고리의 다른 글

[JAVA] 템플릿 메서드  (0) 2022.03.31
[JAVA] 다운캐스팅  (0) 2022.03.27
[JAVA] 가상 메서드  (0) 2022.03.24
[JAVA] 상위 클래스로 묵시적 형변환 (업캐스팅)  (0) 2022.03.24
[JAVA] 접근 제한자  (0) 2022.03.24

댓글