2016-09-08 2 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

Возможно, вы имели в виду Student продлить Person? – Jhonny007

+0

@ Jhonny007 Упс, что важно xD – 4castle

Смежные вопросы