java - 覆盖指定类中的方法

标签 java android inheritance overriding

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

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/

相关文章:

java - 如何将任何 Activity 或 fragment 的数据绑定(bind)对象传递给方法参数而不需要强制转换?

java - 深度继承对象如何使用ModelMapper?

java - 如何在我的编码 android studio 项目中实现此代码 setDisplayName?

c++ - 指向 void 函数中的类的指针

java - 这是关于子类和父类(super class)的

java - 为什么spring三元表达式得到相反的结果?

java - 使用 Hadoop 查找包含特定字符串的文件

android - 如何重新创建进度条旋转?

java - 适用于 Android 的 Google Analytics(分析)如何处理离线应用使用情况?

c++ - 接口(interface)->抽象->具体类设计中的虚解构函数