다형성(polymorphism)
- 다형성이란 클래스나 클래스의 멤버가 다양한 형태를 가지는 것을 의미합니다.
- 범용으로 사용되는 기능을 여러 가지 경우의 수에 맞춰 활용할 수 있게 만들어 줍니다.
- 중복되는 기능 구현 시 코드의 길이를 줄여 보다 편리하고 효과적으로 프로그래밍 할 수 있게 해줍니다.
- 또한 유사한 변수나 기능 구현 시 변수 이름이나 메서드 이름이 복잡해지는 것을 방지할 수 있습니다.
클래스 단위에서의 다형성 활용
- 클래스에 다형성을 적용하여 한 타입의 참조 변수를 통해 여러 타입의 클래스나 인스턴스를 참조할 수 있도록 설정할 수 있습니다.
- 이를 통해 하나의 클래스도 필요에 따라 상위, 하위 클래스로 변형하여 상황에 따른 여러 결과가 나올 수 있도록 설정할 수 있습니다.
컨스트럭터, 메서드 단위에서의 다형적 사용
- 컨스트럭터와 메서드에 다형성을 적용하여 하나의 기능으로 다양한 상황에 대응할 수 있도록 설정할 수 있습니다.
- 다형성의 활용 방법은 대표적으로 아래의 두 가지 방법이 있습니다.
- 오버로딩(Overloading): 한 클래스 내에서 동일한 컨스트럭터나 메서드를 중복 정의하여 사용하는 기법
- 오버라이딩(Overriding): 상위 클래스에 정의된 메서드를 하위클래스에서 재정의하여 사용하는 기법
클래스 다형성(오버로딩) 활용 예시
// 상위 클래스
public class Animal {
// 메서드 오버로딩
void move() {
System.out.println("움직입니다");
}
void move(int num1) {
System.out.println(num1 + "번 움직입니다");
}
}
//하위 클래스
public class Human extends Animal {
// 메서드 오버라이딩
@override
void move() {
System.out.println("사람이 걷습니다")
}
}
'Programing Language > Java' 카테고리의 다른 글
[Java] 클래스의 추상화(Abstraction) (0) | 2022.07.04 |
---|---|
[Java] 오버로딩(Overloading) (0) | 2022.07.04 |
[Java] 오버라이드(Override) (0) | 2022.07.01 |
[Java] 논리 연산자(Logical Operators) (0) | 2022.06.29 |
[Java] 클래스 형 변환(Class Casting) (0) | 2022.06.28 |