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
в SubClass
i обновляю свой вопрос по запросу в комментариях: Дизайн, приведенный выше, является лишь примером. мой QUESTIN ТОЧНО:
Почему преобразование BaseClass в SubClass (sence Subclass extends BaseClass
) невозможно? почему Java не разрешает мне делать следующее:
Пример:
Class Base{
private String name;
.....
}
Class SubClass extends Base{
private String title;
}
затем
Base b = DBController.getById(...);
SubClass sub = (SubClass)b;
после этого объект sub
должен иметь имя атрибута из объекта b
и атрибут title
имеет значение null
почему это не так в java?
Извините за мой плохой английский, спасибо