如果我们的User
基类包含属性username
和password
。
还有一个子级SpecialUser
,其中包含额外的属性special
。
我知道我可以声明ArrayList<User> users = new ArrayList<User>();
然后将SpecialUser
对象添加到users
,但我只能访问从基类(username
和{{1}继承的属性那样。
有没有办法将password
添加到ArrayList并能够访问SpecialUser
属性?还是应该单独存储?
亲切的问候
答案 0 :(得分:4)
当然,你绝对可以!
在您获得对象后,强制它到SpecialUser:
SpecialUser spUser = (SpecialUser) users.get(0);
如果您不确定用户是否为SpecialUser,请在测试之前进行测试:
if (users.get(0) instanceof SpecialUser) {
SpecialUser spUser = (SpecialUser) users.get(0);
// ....
}