将ChildClass对象添加到ArrayList <baseclass>

时间:2018-03-02 18:55:16

标签: java inheritance arraylist

如果我们的User基类包含属性usernamepassword

还有一个子级SpecialUser,其中包含额外的属性special

我知道我可以声明ArrayList<User> users = new ArrayList<User>();然后将SpecialUser对象添加到users,但我只能访问从基类(username和{{1}继承的属性那样。

有没有办法将password添加到ArrayList并能够访问SpecialUser属性?还是应该单独存储?

亲切的问候

1 个答案:

答案 0 :(得分:4)

当然,你绝对可以!

在您获得对象后,强制它到SpecialUser:

SpecialUser spUser = (SpecialUser) users.get(0);

如果您不确定用户是否为SpecialUser,请在测试之前进行测试:

if (users.get(0) instanceof SpecialUser) {
    SpecialUser spUser = (SpecialUser) users.get(0);
    // ....
}