본문 바로가기

개발/Java

Generic 프로그래밍 <T expends 클래스>

반응형

상위 클래스의 필요성


  • T 자료형의 범위를 제한
  • 상위 클래스에서 선언하거나 정의하는 메서드를 공통으로 활용
  • 상속을 받지 않는 경우 T는 Object로 변환되어 Object 클래스가 기본으로 제공하는 메서드만 사용 가능

 

T extends 사용 예제

Material 상위 클래스 생성

전 예제에서 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 클래스에게 상속 받음

                      

Plastic 클래스
Powder

 

상속을 받지 않은 기타 클래스

위 예제에서 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