我想重写已分配给变量的类中的方法。
例如:
inventory = new Inventory( );
/* Some code here that changes how inventory
must behave or whatever */
inventory
{
@Override ...
}
可能吗???
最佳答案
也许你会想到这样的东西(而不是 null - 如果你可以实现默认策略以使其更干净):
public interface Strategy {
public void doSomething();
}
public class Inventory {
Strategy strategy;
public Inventory() {
// ...
}
public void doSomething() {
if (strategy == null) {
System.out.println("strategy is empty");
} else {
strategy.doSomething();
}
}
public Strategy getStrategy() {
return strategy;
}
public void setStrategy(Strategy strategy) {
this.strategy = strategy;
}
}
然后这个
Inventory inventory = new Inventory();
inventory.doSomething();
inventory.setStrategy(new Strategy() {
@Override
public void doSomething() {
System.out.println("strategy is now something different");
}
});
inventory.doSomething();
显示:
strategy is empty
strategy is now something different
要获得更详细的版本,您可以查看 strategy pattern .
关于java - 覆盖指定类中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33464968/