Programing Language/Java

[Java] 클래스의 다형화(Polymorphism)

vinedpillar 2022. 7. 1. 00:08

다형성(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("사람이 걷습니다")
    }
}