假设Fruit、Apple、Orange、GoldenDelicious和Macintosh声明如下图所示。
图1 GoldenDelicious和Macintosh是Apple的子类,Apple和Orange是Fruit的子类
假设给出下面的声明:
Fruit fruit = new GoldenDelicious();
Orange orange = new Orange();
回答下面的问题:
- fruit instanceof Fruit的值为true吗?
- fruit instanceof Orange的值为true吗?
- fruit instanceof Apple的值为true吗?
- fruit instanceof GoldenDelicious的值为true吗?
- fruit instanceof Macintosh的值为true吗?
- orange instanceof Orange的值为true吗?
- orange instanceof Fruit的值为true吗?
- orange instanceof Apple的值为true吗?
- 假设makeAppleCider方法定义在Apple类中,fruit可以调用这个方法吗?orange可以调用这个方法吗?
- 假设makeOrangeJuice方法定义在Orange类中。fruit可以调用这个方法吗?orange可以调用这个方法吗?
- 语句Orange p = new Apple()是否合法?
- 语句Macintosh p = new Apple()是否合法?
- 语句Apple p = new Macintosh ()是否合法?
答:
(1)true
(2)false
(3)true
(4)true
(5)false
(6)true
(7)true
(8)false
(9)false,false
(10)true,false
(11)不合法
(12)不合法
(13)合法
//仅供参考,欢迎各位大佬斧正