0
이 코드를 실행할 때 런타임 오류가 발생하는 이유는 무엇입니까? 배열은 과일을 보유하도록 정의되어 있지만 사과로 초기화 한 후에 과일에 줄 수없는 방법은 무엇입니까?Java Thinking에서 런타임 업 캐스팅 실패
class Fruit{}
class Apple extends Fruit{}
class Jonathan extends Apple{}
class Orange extends Fruit{}
public class CovariantArrays {
public static void main(String[] args) {
Fruit[] fruit = new Apple[10];
fruit[0] = new Apple();
fruit[1] = new Jonathan();
try {
fruit[0] = new Fruit();
} catch(Exception e) { System.out.println(e); }
try {
fruit[0] = new Orange();
} catch(Exception e) { System.out.println(e); }
}
}
배열은'Apple []'입니다. 왜 애플이 일종의 '애플'이 아니 겠는가? –