//AbstractApplicationContext类
protected ConfigurableListableBeanFactory obtainFreshBeanFactory() {
refreshBeanFactory(); //在父类中,真正实现在子类
return getBeanFactory();
}
}
上述代码refreshBeanFactory();方法调用的是子类的
//AbstractRefreshableApplicationContext 子类类中的方法
protected final void refreshBeanFactory() throws BeansException {
if (hasBeanFactory()) {
destroyBeans();
closeBeanFactory();
}
try {
DefaultListableBeanFactory beanFactory = createBeanFactory();
beanFactory.setSerializationId(getId());
customizeBeanFactory(beanFactory);
loadBeanDefinitions(beanFactory);
this.beanFactory = beanFactory;
}
catch (IOException ex) {
throw new ApplicationContextException("I/O error parsing bean definition source for " + getDisplayName(), ex);
}
}
子类继承父类,按理说,父类不应该调用子类的方法呀?
为什么会出现父类调用子类的情况?