다형성

GW·2023년 7월 29일
post-thumbnail

다형성?

  • 상위클래스가 동일한 메세지로 하위 클래스를 서로 다르게 동작시키는 객체지향 이론

    다형성 장점

  • 클래스 확장시키가 쉽고 , 유지보수하기가 쉽다.

다형성 전제조건

1.상속관계
2.Override(재정의)
3.Upcasting
4.동적 바인딩(실행시점에서 사용될 메서드가 결정되는 바인딩)

  • 정적바인딩(컴파일 시점에서 사용될 메서드가 결정되는 바인딩)

    다형성 인수 활용하기

public class Test{
	
    public static void display(Dog d){
    	d.eat
    }
    public static void display(Cat c){
    	c.eat
    }
    
    
    public static void main(String[] args){
    Dog d = new Dog();
    display(d);
    
    Cat c = new Cat();
    diplay(c);
    }
}
만약 이런코드가 있다.
객체가 Dog, Cat 두개가 아니라 하마, 호랑이 사자 등등 여러가지의 객체를 생성해서 display메서드를 사용하려면 
display메서드 수도 기하급수적으로 늘어난다
이러한 단점을 해결하기 위해


public static void display(Animal ani){
	ani.eat();
}
다형성 인수를 사용하여 하나의 타입으로 만들어 자식들에게 사용하게 한다.

0개의 댓글