【问题标题】:Final Variables in inheritance [duplicate]继承中的最终变量[重复]
【发布时间】:2018-12-01 05:41:00
【问题描述】:

让我们考虑以下代码。

 class A {

    final int i =0 ; 
     ...........
      ....
}

   class B extends A {
             i = 10 ;
   --------

}

在上面的代码中, i 被声明为 Final 。但是在子类 B 中,它已被继承并重新分配为值 10 。

我突然有了这个想法,不幸的是无法下载 javac 编译器我发布了这个问题,以了解是否可以在子类中重新分配最终变量。

那么我们可以重新分配子类中的最终变量吗?

【问题讨论】:

  • "并重新分配为值 10" - 它没有重新分配,因为您的代码无法编译。您需要在方法中重新分配它,但它是 final,所以您不能。
  • 基元不能被覆盖。

标签: java inheritance


【解决方案1】:

final 关键字应用于 Java class 的字段时,与继承无关。相反,它表示在构造函数之外,不能重新分配该字段。

我取自here,这里的第一个答案可以很好地解释你的问题

【讨论】:

    猜你喜欢
    • 2017-01-10
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多