我正在阅读我以前的开发人员代码。 在抽象类“元素”下有几个不同的子类,如“numeric”,“Decimal”。 有一段代码如下。
for (Iterator i = children.iterator(); i.hasNext();) {
Element element = (Element) i.next();
for (int j = 0; j < element.getOccurs(); j++) {
int end = pos + element.getLength();
dataChildren.add(element.parse(sub(bytes, pos, end)));
pos = end;
}
}
我的问题是它在执行“element.parse(sub(bytes,pos,end)”时会调用哪些子类?
答案 0 :(得分:2)
如果此类覆盖抽象类的方法或抽象类中的parse方法(如果已实现),则调用“right”类的parse方法。
如果您的子集合是{numeric,numeric,decimal,numeric},并且numeric和decimal都覆盖了element中的parse方法,则首先在数值实例中调用parse方法,在numeric中调用第二个,在十进制中调用第三个然后用数字。