【问题标题】:How to restrict a method to override to just one subclass only in java? is it possible? [duplicate]java - 如何仅在java中将一种方法限制为仅覆盖一个子类?可能吗? [复制]
【发布时间】:2018-07-20 15:05:12
【问题描述】:

假设我有一个方法在我的 A 类中运行

class A {
  void run(){
  }
}

我还有另一个 B 类,它将扩展 A 类。

class B extends A {    
  void run() {
  }    
}

我只想将运行方法限制为 B 类。不应允许进一步覆盖。这可能吗?

【问题讨论】:

  • 请在以后花时间格式化您问题中的代码,并使其成为有效代码而不是伪代码 - class,在这种情况下不是 Class。现在您是否想要阻止A 的其他子类覆盖run,或者只是B 的子类?
  • 不应该覆盖 B 的子类。
  • 然后按照副本或 Mureinik 在他们的答案中建议的操作。

标签: java inheritance methods overriding


【解决方案1】:

您可以将B 的方法设为final,因此扩展类将无法覆盖它:

class B extends A {
    @Override
    final void run() {
    }
}

【讨论】:

  • 我只想在 A 类级别限制运行方法,而不是在 B 类级别。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
  • 2015-11-20
  • 2012-10-08
  • 1970-01-01
  • 2011-11-14
  • 2019-03-20
相关资源
最近更新 更多