【发布时间】:2014-09-27 01:37:05
【问题描述】:
喂,
请帮我看看下面的多态示例:
interface Car {}
class Toyota implements Car {}
class ToyotaSUV extends Toyota {}
class Drive {
public static void main(String [] args){
Car c = new Car();
Toyota t = new ToyotaSUV();
Car s = new ToyotaSuv();
}
以上哪些可以实例化,哪些不能实例化?
ToyotaSUV 可以是丰田或/和汽车?
此致,
【问题讨论】:
-
这不是
C++这是Java。 -
Car是一个抽象接口类。Toyota是Car的基类,ToyotaSUV是派生自Toyota类的子类。话虽如此,你不能实例化一个纯抽象类,Car就是这样。 -
你上面写的很好(你试过吗?)。基本上,您可以将实例“向上”投射,意思是-将丰田称为汽车。但并非相反,因为并非每辆车都是丰田。
-
@DrorFichman 不,这不好。
Car c = new Car();不好,他们试图实例化一个纯抽象类,这是不允许的。 -
你显然是对的。我在看多态部分。