제네릭타입을 부모 클래스로 사용할 경우
타입 파라미터는 자식 클래스에도 기술해야 한다.
public class ChildProduct<T, M> extends Product<T, M> { ... }
추가적인 타입 파라미터를 가질 수 있다.
public class ChaildProduct<T, M, C> extends Product<T , M > { ... }
제네릭 인터페이스를 구현할 경우
타입 파라미터는 구현 클래스에도 기술해야 한다.
public class StorageImpl<T> implement Storage<T> { ... }
exam
public class 제품<T, M> {
private T 종류;
private M 모델;
public T get종류() { return 종류; }
public void set종류(T 종류) {
this.종류 = 종류;
}
public M get모델() {
return 모델;
}
public void set모델(M 모델) {
this.모델 = 모델;
}
}
class Tv{}
public class 자식제품<K,V,C> extends 제품<K, V> {
private C 회사;
public C get회사() {
return 회사;
}
public void set회사(C 회사) {
this.회사 = 회사;
}
}
public interface 보관소<T> {
public void 추가(T item, int index);
public T get(int index);
}
public class 보관소Impl<T> implements 보관소<T> {
private T[] array;
public 보관소Impl(int capacity) {
this.array = (T[]) (new Object[capacity]);
}
@Override
public void 추가(T item, int index) {
array[index] = item;
}
@Override
public T get(int index) {
return array[index];
}
}
public class 자식제품그리고보관소Example {
public static void main(String[] args) {
자식제품<Tv, String, String> 제품 = new 자식제품<>();
제품.set종류(new Tv());
제품.set모델("스마트티비");
제품.set회사("삼성");
보관소<Tv> 보관소 = new 보관소Impl<>(100);
보관소.추가(new Tv(), 0);
Tv tv = 보관소.get(0);
}
}
'JAVA > JAVA' 카테고리의 다른 글
람다식 기본 문법 (0) | 2018.06.09 |
---|---|
람다식이란? (0) | 2018.06.09 |
제네릭(Generic) 와일드카드 타입 (0) | 2018.06.09 |
제네릭(Generic) 메소드 (0) | 2018.06.08 |
제네릭(Generic)이란 ? 제네릭 타입이란? (0) | 2018.06.08 |