2016-09-08 53 views
-1

我想知道是否有辦法讓一個abstract類的孩子班級定義一個對象,在這種情況下是ArrayList。這可能有一個簡單的答案,我看起來不夠,但我找不到任何東西! 謝謝!讓孩子班級定義一個對象

+1

您可以添加演示您想法的代碼嗎? – ChiefTwoPencils

+0

我認爲你正在尋找[匿名類](https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html) – rajuGT

+0

難道你不能只聲明它是一個'protected'字段抽象類?從而迫使所有的孩子擁有它? – 4castle

回答

3

ArrayList作爲摘要類的protected字段。任何子類都可以使用super限定符來訪問它,如果它沒有被局部變量遮蔽,則可以通過名稱來訪問它。

public abstract class Person { 
    protected List<Person> friends = new ArrayList<>(); 
    public void callCellPhone() { ... } 
} 

public class Student extends Person { 
    public void callFriends() { 
     // friends is defined in the super-class 
     // "super" is an optional qualifier here 
     for (Person person : super.friends) { 
      person.callCellPhone(); 
     } 
    } 
} 
+0

你的意思是學生延長人嗎? – Jhonny007

+0

@ Jhonny007哎呀,這很重要xD – 4castle

相關問題