[Java 자료구조] 제네릭 프로그래밍
제네릭 프로그래밍 클래스에서 사용되는 변수의 자료형이 여러 개 일 수 있고, 그 기능(메서드)는 동일할 때 자료형을 특정짓지 않고 클래스를 사용할 때 자료형을 지정하도록 선언하는 것 자료
suaring.tistory.com
지난번 구현한 제네릭 프로그래밍에서는 모든 자료형이 GenericPrinter의 매개변수로 들어갈 수 있다. 하지만 프린터는 재료만 매개변수로 받을 수 있다. 이처럼 자료형의 범위를 제한하기 위해 <T extends 클래스>를 사용한다.
<T extends 클래스>
- 자료형의 범위를 제한할 수 있다.
- 상위 클래스에서 선언하거나 정의하는 메서드를 활용할 수 있다.
- 상속을 받지 않는 경우 T는 Object로 변환되어 Object 클래스가 기본으로 제공하는 메서드만 사용할 수 있다.
상위 클래스 생성

- Plastic과 Powder 클래스의 상위 클래스(추상 클래스)를 만들어 공통 메서드를 선언 또는 구현한다.
- 각 클래스의 인스턴스는 Object 클래스의 메서드와 Material의 메서드를 사용할 수 있다.
- 하위 클래스에서 Material에 선언된 메서드를 override한다.
- 제네릭 클래스에서 <T extends Material>로 선언해주면 자료형을 Material의 하위 클래스로 한정지을 수 있다.
제네릭 클래스 선언부
public class GenericPrinter<T extends Material>
'Java & Kotlin' 카테고리의 다른 글
[Java 자료구조] 제네릭 메서드 활용 (0) | 2022.02.07 |
---|---|
[Java 자료구조] 제네릭 프로그래밍 (0) | 2022.02.07 |
[Java 자료구조] 큐 구현해보기 (0) | 2022.02.07 |