我已经实现了模板方法,我遇到了这种情况:
public class ProductTemplate() {
protected Item getItemFromShop(){
processItemPrice();
callOrderSummary();
}
protected void processItemPrice() {
Do some logic....
}
protected void callOrderSummary()
Do some logic....
}
}
public class ImportedProduct extends ProductTemplate() {
@Override
protected Item getItemFromShop() {
super.getItemFromShop(); // When i call this super method, they will use the processItemPrice() from the implementation
}
@Override
protected void processItemPrice() {
Do another logic....
}
}
我的疑问是..可以调用一个超级方法,如果在这个超级方法中有一个方法调用并且我重写了这个方法,那么这个类将使用什么方法实现?
解决方案:好的,它工作正常。但是当我有一个类调用一个方法被覆盖时,有这个没用:
public class SimpleProduct extends ProductTemplate(){
public processItemPrice(){
super.processItemPrice()
}
}
This ProductTemplate implements an interface, and is used within Strategy pattern.. is it right?