在我的代码中
Public class TailList extends SList{
...
}
第一个问题:
这两行有什么不同:
TailList t;
和
TailList t = new TailList();
第二个问题是:
如果我写:
SList s = new SList();
t = (TailList) s; // Compile-time Error
为什么?
但是,如果我写:
t = (TailList) s;
我的第一个问题是,没有错误!
最佳答案
第一个声明了一个 TailList 类型的变量。第二个声明一个 TailList 类型的变量,并使用 TailList 的新实例对其进行初始化。
关于第二个问题:s
是SList
的一个实例。 SList
不扩展 TailList
,因此它不是 TailList
。将其转换为 TailList
不会神奇地使其成为 TailList
。
关于java - 对象创建/声明不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22022751/