Я довольно новичок в Java, у меня есть связанныйList класса ObjectType, у меня есть разные подклассы ObjectType, которые добавляются в связанныйList, когда я вытаскиваю объект из-за меня вынужден передать ему тип ObjectType и, похоже, теряют унаследованные свойства подкласса ... Может ли кто-нибудь пролить свет на это для меня?Java LinkedList Наследование объектов overriden
//LIST STORING OBJECT
public class MyObjectList{
private LinkedList<ObjectType> queue = new LinkedList<ObjectType>();
public MyObjectList()
{
queue = new LinkedList<ObjectType>();
}
public ObjectType addObject(ObjectType myObject)
{
queue.add(myObject);
return myObject;
}
}
//MY BASIC OBJECT
public abstract class ObjectType {
public int objectWidth;
public ObjectType() {}
}
//MY EXTENDED OBJECT BOX
public abstract class Box extends ObjectType {
public int objectWidth = 50;
public ObjectType() {}
}
//MY EXTENDED OBJECT PLATE
public abstract class Box extends ObjectType {
public int objectWidth = 25;
public Box() {}
}
// ОК, так что теперь, если я добавлю количество ящиков в свой список ящиков, их значение будет установлено на нуль!
mList = new MyObjectList;
for (int i=0;i<10;i++)
{
mObject = mList.addObject(new Box);
}
Важно помнить, что мой список должен быть составлен из различных типов объектов, в конечном счете, так что BaseObject должен оставаться как есть. если возможно!
Вы не можете добавить 'new Box()' is is abstract. Можете ли вы привести пример, который компилируется и запускается? –