java - 有没有办法将 "override"本质上作为最终变量?

标签 java inheritance overriding

我知道你不能覆盖变量,但是有没有办法从本质上“覆盖”下面的最终工作变量?

public class ClassA {
   final protected CustomClass worker;

   public doComplicatedWork() {
        ....
        worker.doSomething();
        ....
   }
}

基本上我想做的就是扩展 CustomClass 并让 ClassA 正常完成所有工作,除了 worker 将是我的扩展 自定义类ClassA 和原始的 CustomClass 都在一个 jar 中,所以我不想参与修改它们。有办法做到这一点吗?

最佳答案

听起来你不需要这样做。假设您将 worker 作为构造函数参数传递给 ClassA,因此只需构造您的 Worker,并将其传递给 ClassA 即可。您的问题中没有任何内容听起来像是您需要削弱 final 声明。

关于java - 有没有办法将 "override"本质上作为最终变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18150003/

相关文章:

sqlite - 未捕获的TypeError:对象app.data.proxy.CustomSql没有方法“应用” sencha touch

c# - "Hiding"子类中具有非泛型方法的泛型方法

java - 如何验证param实际上是Json,而不仅仅是字符串

java - JComponent 的裁剪矩形是如何计算的?

java - 使用方法重载处理违反 'Liskov substitution principle' 的类

c++ - 类和接口(interface)之间的继承顺序重要吗?

java - 阻止 libgdx TextButton 根据文本更改大小

java - hibernate中复合键的Where子句

c++ - 为什么从具体类派生是一个糟糕的设计

python - 调用子方法时如何强制执行强制父方法调用?