자바의 다형성
- 최초 등록일
- 2007.04.02
- 최종 저작일
- 2007.01
- 7페이지/ MS 워드
- 가격 1,000원
소개글
다형성의 기본개념을 넘어서 어떻게 다형성이 프로그램에 활용되는지를 구체적으로 설명
목차
없음
본문내용
이것은 OOP의 가장 기본적인 개념이지만, 단지 이해하는 것만으로는 충분하지 않다. 중요한 것은 OOP의 장점, 어플리케이션의 확장과 관리를 쉽게 해주는 데 지대한 역할을 이 다형성이 한다는 것이다. 이것은 만들고자하는 어플이케이션의 특성과 상황에 따른 올바른Design Pattern의 선택을 통해서 얻을 수 있다. 그리고 이 OOP의 다형성은 수많은 Design Pattern(예. Strategy, Oberver, Decorator, etc) 을 구성할 수 있게 해주는 기본요소가 된다.
인터페이스는 자바에서 사용되는 construct interface이지만, 앞으로 말하는 인터페이스는 super-type 또는 super class를 의미한다. super-type은 일반 class, abstract, interface 모든 종류의 자바 클래스가 될수 있는데, 자바의 효율적인 다형성을 활용하기 위해서는abstract, interface type을 super class로 사용하는 것이 바람직하다.
다형성을 활용할 때 가장 중요한 점은 super type(super class)에 대해 프로그램을 해야한다는 것이다. 이렇게 함으로써code(program)가 super type(super class)에 종속되는 것을 피할 수 있다. 다시 말하면 여기서 super type이라는 것은 특정 super class이고 그 type은 abstract나 interface가 될수 있을 것이다. 그리고 이super class에서는 간단한 method를 정의하는 정도만 있을 것이고, 이super class를 상속하는 sub class에서 이 method에 대한 상세한 프로그램을 해야 한다는 뜻이다. 이것이 바로 제목에서 말하는 “인터페이스(Interface or super-type)에 프로그램하기” 이다.
그리고 나서 구체적인 클래스, 정작 만들고자하는(concrete class) 목적 클래스는super type의 레퍼런스들로만 구성하면 된다.
더 쉬운 이해를 위해서 다음의 코드의 예제로 살펴보자.
이제 만들려고 하는 프로그램은 동물들이 움직이는 것과 소리내는 것을 simulator를 구성하는 것이다. 하지만 별로 바람직하지 못한 디자인의 형태이다.
abstract class Animal //Super class
{
public void move() //Implement common behavior
{
System.out.println("Move with legs");
}
public abstract void sound(); //Abstract method
}
참고 자료
Head First Design Pattern