public class test1 {
static public void main(String[]args){
Box<fruit> f1=new Box<Apple>();
fruit f=new Apple();
}
}
class fruit{
public String toString(){return "부모 클래스 입니다";}
}
class Apple extends fruit{
public String toString(){return "I am an apple.";}
}
class Orange extends fruit{
public String toString(){return "I am an orange.";}
}
class Box<T>{
private T ob;
public void set(T o){
ob=o;
}
public T get(){
return ob;
}
}
static public void main(String[]args){
Box<fruit> f1=new Box<Apple>();
fruit f=new Apple();
}
}
class fruit{
public String toString(){return "부모 클래스 입니다";}
}
class Apple extends fruit{
public String toString(){return "I am an apple.";}
}
class Orange extends fruit{
public String toString(){return "I am an orange.";}
}
class Box<T>{
private T ob;
public void set(T o){
ob=o;
}
public T get(){
return ob;
}
}
왜 막아 둔거야??
공학적인 이유는 모르겠지만 extends fruit을 제너릭으로 주면 될듯
제네릭의 불공변성(비공변성) 때문인데 타입소거와 관련있음 제네릭 공변성 검색해보셈