제네릭타입을 부모 클래스로 사용할 경우

타입 파라미터는 자식 클래스에도 기술해야 한다.

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

+ Recent posts