我知道你可以將LinkedList的實現分爲兩類。在一中,實際工作LinkedList的是一個參考第一部分鏈接節點,這樣是否有可能擴展一個具有自身實例的類作爲一個字段,以便子類具有該子類的實例?
public class LinkedList1<E>{
class Node{
E data;
Node next;
}
Node head;
}
該版本可能是更好的,但是另外,還有一個更「直接」的版本,使之類的東西刪除頭(頭意味着從客戶的角度來看,第一個元素)有點麻煩,但仍然LinkedList2的實例中可能:
public class LinkedList2<E>{
E data;
LinkedList2 next;
}
我很好奇,如果有任何的方式來創建LinkedList2Child extends LinkedList2
使得next
字段類型LinkedList2Child
,可能涉及反思?
編輯:這並不妨礙我完成任何事情,因爲版本1可用 - 我只是對一般問題好奇,這是一個例子。
我知道你可以通過聲明一個與父字段同名的字段來隱藏子類中的字段,但是如果你想使用在該字段上操作的父方法,這將不起作用。
爲什麼你不想使用第一個版本?你所做的一切都是消除鏈表,現在你只有節點,將列表本身的管理權限降級到客戶端代碼。這沒有意義。我認爲這是一個XY問題......請解釋你正在嘗試解決的實際問題,這些問題無法通過Collection類來解決。 – 2014-08-27 20:34:34
您不必將管理權限歸入客戶端代碼。你仍然可以實現添加,刪除,從類內的任何東西。並不是我不想使用第一個版本。這可能會更好。我只想知道如果以我描述的方式擴展後者是可能的。 – user3391564 2014-08-27 20:36:15