📜  Java中的私有方法和最终方法

📅  最后修改于: 2022-05-13 01:55:51.416000             🧑  作者: Mango

Java中的私有方法和最终方法

当我们将final说明符与方法一起使用时,该方法不能在任何继承类中被覆盖。由于设计原因,方法是最终的。
由于私有方法是不可访问的,它们在Java中是隐式的 final 。因此,将final说明符添加到私有方法不会增加任何价值。事实上,它可能会引起不必要的混乱。

class Base {
  
   private final void foo() {}
  
   // The above method foo() is same as following. The keyword 
   // final is redundant in above declaration.
  
   // private void foo() {}
}

例如,下面的“program 1”和“program 2”都会产生相同的编译器错误“foo() has private access in Base”。

程序 1

// file name: Main.java
class Base {
    private final void foo() {}
}
   
class Derived extends Base {
    public void foo() {} 
}
   
public class Main {
    public static void main(String args[]) {
        Base b = new Derived();
        b.foo();
    }
}

节目二

// file name: Main.java
class Base {
    private void foo() {}
}
   
class Derived extends Base {
    public void foo() {} 
}
   
public class Main {
    public static void main(String args[]) {
        Base b = new Derived();
        b.foo();
    }
}