我想知道是否有办法让abstract
类的子类定义一个对象,在这种情况下是ArrayList
。这可能有一个简单的答案,我看起来不够,但我找不到任何东西!
谢谢!
答案 0 :(得分: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();
}
}
}