分配的类的重写方法

Sw3das

我想从已经分配给变量的类中重写方法。
例如:

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

对于更详细的版本,您可以看一下策略模式

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章