Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

wintertreey 님의 블로그

다형성 Polymorphism 본문

Spring

다형성 Polymorphism

wintertreey 2024. 7. 3. 19:59

다형성(Polymorphism)은 객체지향 프로그래밍의 중요한 개념 중 하나로, 같은 코드가 여러 가지 형태로 동작할 수 있는 특성. 이는 코드의 재사용성과 유연성을 높여주는 중요한 원리이다. 

다형성의 종류와 설명

  1. 메서드 오버라이딩 (Method Overriding):
    • 서브클래스(자식 클래스)가 슈퍼클래스(부모 클래스)의 메서드를 재정의하여 사용하는 것을 말한다. 이 경우에는 서브클래스에서 같은 이름의 메서드를 정의하면 슈퍼클래스의 메서드는 숨겨지고 서브클래스에서 정의한 메서드가 호출된다.
  2. 메서드 오버로딩 (Method Overloading):
    • 같은 이름의 메서드를 매개변수의 타입이나 개수를 다르게 하여 여러 개 정의하는 것. 컴파일러가 메서드 호출 시 전달되는 인자에 따라 적절한 메서드를 선택.
  3. 다형적 변수 (Polymorphic Variables):
    • 하나의 변수가 여러 타입의 객체를 참조할 수 있는 것을 의미. 부모 클래스 타입의 변수가 자식 클래스의 객체를 참조할 수 있으며, 이 변수를 통해 다양한 형태의 객체들을 사용할 수 있다.
  4. 인터페이스 다형성 (Polymorphism through Interfaces):
    • 인터페이스를 구현한 여러 클래스들이 인터페이스 타입으로 참조될 수 있는 것을 말함. 이는 인터페이스가 정의한 메서드를 클래스가 구현했다면, 인터페이스 타입으로 그 클래스를 참조하여 다형성을 구현할 수 있다.

코드 일부분 발췌

public class MyProcess implements MyInter {
    private MoneyInter inter; // MoneyInter 타입의 인터페이스 변수
    private int re[];

    public MyProcess(MoneyInter inter) {
        this.inter = inter; // 다형성 활용
    }
}

 

 

MyProcess 클래스의 생성자 MyProcess(MoneyInter inter)에서 매개변수로 받은 inter는 MoneyInter 인터페이스 타입.

 

인터페이스는 다형성을 실현하는 중요한 수단 중 하나. 여기서 다형성을 활용하여 inter 변수는 MoneyInter 인터페이스를 구현한 다양한 클래스의 객체를 참조할 수 있다.

 

이러한 구현체들은 각각의 클래스에서 MoneyInter 인터페이스의 메서드들을 구현하고 있으며, 이를 통해 MyProcess 클래스는 다양한 구현체들을 일관된 방식으로 처리할 수 있다. 이는 코드의 유연성과 확장성을 높이며, 코드 재사용성을 극대화하는 데 도움을 다.