java,从超类初始化子类
2022-09-04 03:35:05
public class Base {
//long list of attributes
// no Constructor using fields
// no init methode
// i cannot change this class
}
现在我扩展了基类,如下所示:
public class subClass extends Base{
private boolean selected;
...
getter und setter
...
}
i 成为基本对象的列表List<Base>
但我需要相同的列表,但有没有办法从基类初始化子类?List<SubClass>
例:
for(Base b: list){
SubClass sub = (SubClass)b; // Thats wrong i know
if(...){
sub.setSelected(true);
}
newList.add(sub);
}
我试图避免将基的每个属性手动初始化为子类Class
我按照评论中的要求更新我的问题:上面的设计只是一个例子。我的QUESTIN正是:
为什么将基类转换为子类(sence)是不可能的?为什么Java不允许我做以下事情:Subclass extends BaseClass
例:
Class Base{
private String name;
.....
}
Class SubClass extends Base{
private String title;
}
然后
Base b = DBController.getById(...);
SubClass sub = (SubClass)b;
之后,对象应具有对象中的属性名称,并且属性为 nullsub
b
title
为什么在Java中不是这种情况?
对不起我的英语不好,谢谢