본문으로 바로가기

다형성(Polymorphism)

category Java 2024. 4. 25. 09:04

1. 다형성에 대한 개념을 이해하자.

다형성은 하나의 데이터 타입이 다양한 형태로 바라볼 수 있는 것

다형성(Polymorphism)은 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. 이는 한 요소(예: 메서드, 클래스)가 여러 형태를 가질 수 있는 능력을 의미합니다. 다형성은 코드의 유연성과 재사용성을 높여주며, 상속, 추상화, 인터페이스와 함께 사용됩니다.

 

 

Animal.java

Human.java

Tiger.java

AnimalTest.java

2. 업캐스팅과 다운캐스팅이란?

업캐스팅(Upcasting)과 다운캐스팅(Downcasting)은 객체 지향 프로그래밍에서 다형성을 활용할 때 사용되는 개념입니다.

업캐스팅(Upcasting)

  • 업캐스팅은 부모 클래스의 참조 변수로 자식 클래스의 객체를 참조하는 것을 말합니다.
  • 부모 클래스의 데이터 타입으로 자식 클래스의 객체를 대입하는 것을 의미합니다.
  • 업캐스팅은 자동으로 이루어집니다.
  •  
Animal animal = new Dog(); // 업캐스팅

다운캐스팅(Downcasting)

  • 다운캐스팅은 부모 클래스의 참조 변수를 자식 클래스의 객체로 변환하는 것을 말합니다.
  • 다운캐스팅은 명시적으로 형변환을 해야 합니다.
  • 다운캐스팅은 업캐스팅된 객체가 실제로 자식 클래스의 객체일 때만 가능합니다. 그렇지 않으면 ClassCastException(예외) 이 발생할 수 있습니다.
  •  
Animal animal = new Dog(); // 업캐스팅
Dog dog = (Dog) animal; // 다운캐스팅

 

Fruit.java

 

Peach.java

Banana.java

FruitTest.java

정리

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

● 같은 코드에서 여러 다른 실행 결과가 나옴

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

● 다형성을 잘 활용하면 유연하고 확장성있고, 유지보수가 편리한 프로그램을 만들수 있음

 

package starcraft.ver04;

Unit.java

'Java' 카테고리의 다른 글

인터페이스에 대한 고찰  (0) 2024.04.25
중요한! 인터페이스(interface)  (0) 2024.04.25
연관, 의존 관계란?  (0) 2024.04.24
POWER JAVA 예제) 4-1,2,3  (0) 2024.04.23
Composition(포함관계)  (0) 2024.04.23