public class LinkedListStructs {
public LinkedList l1 = new LinkedList();
public LinkedListStructs(){
ListNode h1 = new ListNode(4);
ListNode h2 = new ListNode(3);
ListNode h3 = new ListNode(12);
ListNode h4 = new ListNode(9);
ListNode h5 = new ListNode(9);
ListNode h6 = new ListNode(4);
l1.head = h1;
h1.next = h2;
h2.next = h3;
h3.next = h4;
h4.next = h5;
h5.next = h6;
}
}
然後我在其他類擴展這樣的:擴展Java中的類不初始化
public class Tester extends LinkedListStructs{
public void removeDupsTest(){
l1.printList();
l1.removeDups();
l1.printList();
}
}
我沒有初始化的LinkedListStructs
一個新的實例。我的問題是,當我擴展一個類時,是否會自動創建一個實例?
我很困惑,因爲我在測試類中使用LinkedList l1
,但對象本身需要一個構造函數初始化爲您3210
所以你們看到,它是如何工作的?如果我不創建一個實例,初始化鏈表的屬性,那麼如何使用它?
感謝
子類可以訪問超類的所有「public」和「protected」字段。 – 4castle
當你初始化你的子類時,你的超類首先被初始化! –
您不應使用與廣泛使用的標準API類型相匹配的非限定類型名稱。此外,如果你實現了一個列表或其他容器類型,那麼你應該對它所包含的類型進行泛化。 –