2016-09-08 6 views
-1

abstractクラスの子クラスにオブジェクトを定義する方法があるかどうかは疑問でした。この場合はArrayListです。これは簡単な答えがあるかもしれませんが、私は十分に見ていませんが、何も見つかりません! ありがとうございました!子クラスでオブジェクトを定義する

+1

アイデアを示すコードを追加できますか? – ChiefTwoPencils

+0

私はあなたが[匿名のクラス](https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html)を探していると思います。 – rajuGT

+0

「保護された」フィールドとして宣言できませんか?抽象クラス?それによってすべての子供たちにそれを持たせるように強制するのですか? – 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

関連する問題