[Java 다형성] 제네릭과 다형성의 결합

제네릭은 데이터 타입을 일반화하여 코드의 재사용성과 타입 안정성을 높이는 Java의 핵심 기능입니다.



제네릭의 기본 개념

제네릭을 직역하면 일반화이므로 “데이터 타입을 일반화”

  • 코드 재사용성: 데이터 타입을 파라미터화하여 외부에서 지정
  • 타입 안정성: 컴파일 시점에 타입 체크 수행 (오류 바로 검출)
  • JDK 1.5부터 도입
    • 예전엔(=JDK1.5이전) Object를 사용 후 형변환을 적용하는 방식
// ArrayList 사용 예시
// ArrayList 는 제네릭으로 구현 됨
ArrayList<String> strList = new ArrayList<>(); 
ArrayList<Integer> intList = new ArrayList<>();

// 제네릭은 하나의 클래스로 여러 타입 처리 가능
class Box<T> {
    private T item;
    
    public void setItem(T item) {
        this.item = item;
    }
    
    public T getItem() {
        return item;
    }
}


제네릭 사용 예시 자세히

Image



제네릭과 다형성의 결합

활용 예시

List<Animal> animals = new ArrayList<>();
animals.add(new Dog());    // Dog가 Animal을 상속
animals.add(new Cat());    // Cat이 Animal을 상속


💡 이전 방식과 비교

  • JDK 1.5 이전: Object 타입 사용 후 형변환
  • JDK 1.5 이후: 제네릭을 통한 타입 안정성 확보

제네릭은 다형성과 결합하여 타입 안정성을 유지하면서도 유연한 코드 작성을 가능하게 합니다.

댓글남기기