我有一個名爲DataItem
的超類,它有多個孩子,孩子也有孩子。我動態地設置了對象類型,但最後類型引用是DataItem
。下面是我用它來確定類類型的代碼:如何從父引用調用子方法?
private DataItem getDataItemUponType(DataSection parent,Element el) {
String style = getItemStyle(parent,el);
if(style!=null) {
if(style.equals("DUZ")) {
return new DataItemPlain();
} else if(style.equals("TVY")) {
return new DataItemPaired();
} else if(style.equals("TVA")) {
return new DataItem();
} else if(style.equals("FRM")) {
return new DataItemForm();
} else if(style.equals("IMG")) {
return new DataItemImage();
} else if(style.equals("CLN")) {
return new DataItemCalendar();
} else if(style.equals("BTN")) {
return new DataItemButton();
} else if(style.equals("ALT")) {
return new DataItemSubRibbon();
}
} else {
// At least return a DataItem.
return new DataItem();
}
return new DataItem();
}
然後,我用它來設定我的對象:
DataItem dataItem = getDataItemUponType(parent,element);
然後我想從DataItem
亞型調用。我怎麼做?
注:我需要使用DataItem
,所以使它抽象不適合我。