다형성
다형성이란 같은 부모를 가진 다른 자식을 상황에 맞게 사용하는 것을 의미한다.
하나의 Type(부모)로서 다른 결과를 얻을 수 있다. => 객체를 부품화하여 유지 보수를 용이하게 한다.
참조 :JOKER 블로그
밑의 코드를 보게 되면 Car라는 하나의 Interface을 상속받는 Sonata와 Genesis가 존재한다. Car가 Interface이므로 Sonata와 Genesis가 같은 Method를 Override하지만 Method의 내용은 다르므로 다른 결과를 얻을 수 있다.
//Interface 정의
public interface Car {
void name ();
void price ();
}
//Grenger Class 정의
public class Grenger implements Car {
//Car Method Override
@Override
public void name () {
System . out . println ( "Grenger" );
}
@Override
public void price () {
System . out . println ( "8000" );
}
}
//Sonata Class 정의
public class Sonata implements Car {
//Car Method Override
@Override
public void name () {
System . out . println ( "Sonata" );
}
@Override
public void price () {
System . out . println ( "4000" );
}
}
//Polymorphism 예제
public class Polymorphism {
public static void main ( String [] args ) {
Car c1 = new Grenger ();
Car c2 = new Sonata ();
c1 . name ();
c1 . price ();
c2 . name ();
c2 . price ();
/*
Car 라는 동일한 Type을 가지지만
Car의 자식 중 다른 Sonata 와 Grenger를 사용하여
Grenger 8000 Sonata 4000라는 다른 결과가 나온다
*/
}
}
참조: 원본코드
코드에 문제가 있거나 궁금한 점이 있으면 wjddyd66@naver.com으로 Mail을 남겨주세요.
Leave a comment