0

我上传了一张我无法弄清楚的问题的图片。正确答案突出显示,但是,我不知道如何解决这个问题。

我很困惑,我认为构造函数必须与赋值运算符(等号)两侧的类具有相同的名称,但在大多数这些问题上它们是不同的。

例如:我习惯于看到类似的东西: World test1= new World("Whatever");

但是在这些问题上,我看到了类似的东西: World test1= new State("whatever");

答案以橙色突出显示,给出的代码以绿色突出显示。我非常感谢有关如何执行此操作的任何帮助或提示。我在 youtube 和 google 上环顾了一段时间,无法弄清楚。

http://imgur.com/viqi2W7混淆java的东西

4

1 回答 1

0

在示例中,“State”是“Country”的子类,“Country”是“World”的子类。

子类可以分配给声明为超类类型的变量。这限制了代码将实例视为超类的类型。

像 instance of 或 checkcast 这样的运算符允许代码确定实际的运行时类型(在示例中为 State)并将其向下转换为子类。

于 2015-11-30T11:49:00.097 回答