Java class syntax check
Java類別語法檢查
五、請參考以下的 Java classes,解釋下列各小題的語法是否正確,如不正確請說明原因。
(每小題 5 分,共 15 分)
(一)class X { public void x( ) { ... } }
class Y extends X { public void y( ) { ... } }
class Z extends Y { public void z( ) { ... } }
(二)int count(Set<Y> s) { ... } ... count(new TreeSet<Z>( ));
int count(Set<? extends Y> s) { ... } ... count(new
TreeSet<Z>());
(三)int count(Set<? super Z> s) { for (X a : s) a.x( ); ... };
以下是對您的問題的回答:
第一個和第二個語法都是正確的。在第一個語法中,new TreeSet<Z>() 創建了一個 TreeSet,其中元素的類型是 Z。由於 Z 是 Y 的子類別,因此這個 TreeSet 可以被視為是一個 Set<Y>。在第二個語法中,Set<? extends Y> 表示一個元素類型是 Y 或其子類別的 Set。因此,這個 TreeSet<Z> 可以被視為是一個 Set<? extends Y>。
第三個語法不正確。在這個語法中,for (X a : s) 嘗試將 s 中的元素轉換為 X 類型。由於 s 中的元素可能不是 X 的子類別,因此這個轉換可能會失敗。如果您想要遍歷 s 中的元素,請使用迭代器。
希望這可以幫助您!如果您有任何其他問題或需要進一步協助,請隨時告訴我。
Comments
Post a Comment