在我的代码中
Public class TailList extends SList{
...
}
第一个问题:
这两行之间有什么不同:
TailList t;
和
TailList t = new TailList();
第二个问题是:
如果我写:
SList s = new SList();
t = (TailList) s; // Compile-time Error
为什么?
但是,如果我写:
t = (TailList) s;
我的第一个问题是,没有错误!
答案 0 :(得分:1)
第一个声明一个TailList类型的变量。第二个声明了一个TailList类型的变量,并用一个新的TailList实例初始化它。
关于第二个问题:s
是SList
的一个实例。 SList
不会延伸TailList
,因此 不是TailList
。将其投放到TailList
并不会让它成为TailList
。