构造器在 Java 中可以标记为 final、abstract 或 static 吗?


除了 public、protected 和 private 之外,构造器不允许其他任何修饰符。

  • 在方法或构造器中使用 final 关键字时,它不能被覆盖。但是,Java 中的构造器不能被覆盖,因此无需在构造器中使用 final 关键字。

  • 由于不能覆盖构造器,因此如果构造器是抽象的,就不能向它提供主体。因此,不能在构造器中使用 abstract 关键字。

  • 如果想在实例化类之前调用类的成员,则需要在之前使用 static。但是,在实例化时会隐式调用承包商。因此,在构造器中使用 static 没有意义。

示例

public class Sample {
   public final static Sample(){
      System.out.println("Hello");
   }
   public static void main(String args[]) throws Exception{
      Sample obj = new Sample();
   }
}

输出

C:\Sample>javac Sample.java
Sample.java:2: error: modifier static, final not allowed here
public final static Sample(){
                    ^
1 error

更新日期:2019-07-30

2K+ 次浏览

开启您的职业

完成课程获得认证

开始吧
广告