[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;
}
}
제네릭 사용 예시 자세히
제네릭과 다형성의 결합
활용 예시
List<Animal> animals = new ArrayList<>();
animals.add(new Dog()); // Dog가 Animal을 상속
animals.add(new Cat()); // Cat이 Animal을 상속
💡 이전 방식과 비교
- JDK 1.5 이전: Object 타입 사용 후 형변환
- JDK 1.5 이후: 제네릭을 통한 타입 안정성 확보
제네릭은 다형성과 결합하여 타입 안정성을 유지하면서도 유연한 코드 작성을 가능하게 합니다.
댓글남기기