让子类定义一个对象

时间:2016-09-08 20:39:02

标签: java oop inheritance

我想知道是否有办法让abstract类的子类定义一个对象,在这种情况下是ArrayList。这可能有一个简单的答案,我看起来不够,但我找不到任何东西! 谢谢!

1 个答案:

答案 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();
        }
    }
}