반응형
상위 클래스의 필요성
- T 자료형의 범위를 제한
- 상위 클래스에서 선언하거나 정의하는 메서드를 공통으로 활용
- 상속을 받지 않는 경우 T는 Object로 변환되어 Object 클래스가 기본으로 제공하는 메서드만 사용 가능
T extends 사용 예제
전 예제에서 GenericPrinter에 material 변수의 자료형을 상속받아 구현
T에 무작위 클래스가 들어갈 수 없게 Material 클래스를 상속받은 클래스로 한정
1. 상위 클래스 Material을 abstract로 생성
public abstract class Material {
public abstract void doPrinting();
}
- 하위 클래스에서 상속을 받을 수 있게 abstract로 지정
- abstract 메서드는 하위 클래스에서 정의 후 사용 가능
2. GenericPrinter <T extends Material>
위 소스처럼 상속을 통해 T에 대한 제한을 한다.
3. 하위 클래스들도 Material 클래스에게 상속 받음
상속을 받지 않은 기타 클래스
위 예제에서 Material에게 상속을 받은 클래스만이 제네릭 타입으로 적용 가능
상속을 받지 않은 클래스는 사용 불가
반응형
'개발 > Java' 카테고리의 다른 글
Set 인터페이스 <HashSet> , <TreeSet> (0) | 2021.05.02 |
---|---|
Iterator (0) | 2021.05.02 |
제네릭(Generic) 프로그래밍 <T> (0) | 2021.05.01 |
[JAVA 파헤치기] 자바의 유용한 클래스들 (0) | 2021.04.29 |
인터페이스(interface) (2) | 2021.04.27 |