ホームページ > Java > &#&チュートリアル > Java ではコンストラクターを Final にできないのはなぜですか?

Java ではコンストラクターを Final にできないのはなぜですか?

PHPz
リリース: 2023-08-20 19:01:22
転載
1504 人が閲覧しました

Java ではコンストラクターを Final にできないのはなぜですか?

メソッドを Final として宣言した場合、それをオーバーライドすることはできません。つまり、スーパークラスの最終メソッドの実装をサブクラスに提供することはできません。

つまり、メソッドを Final として宣言する目的は、メソッドが外部 (サブクラス) から変更されるのを防ぐことです。

継承では、クラスを拡張すると、サブクラスはコンストラクターを除くスーパークラスのすべてのメンバーを継承します。

つまり、Java ではコンストラクターを継承できないため、コンストラクターをオーバーライドすることはできません。

したがって、コンストラクターの前に Final を追加することは意味がありません。したがって、Java では、コンストラクターの前に Final キーワードを使用することはできません。

コンストラクターをfinalとして宣言しようとすると、コンパイル時エラーが生成され、「修飾子finalはここでは使用できません」というメッセージが表示されます。

次の Java プログラムでは、Student クラスに、final として宣言されたコンストラクターがあります。

デモ

public class Student {
   public final String name;
   public final int age;
   public final Student() {
      this.name = "Raju";
      this.age = 20;
   }
   public void display() {
      System.out.println("Name of the Student: "+this.name );
      System.out.println("Age of the Student: "+this.age );
   }
   public static void main(String args[]) {
      new Student().display();
   }
}
ログイン後にコピー

コンパイル時エラー

コンパイル中に、上記のプログラムは次のエラーを生成します。

えええええ

以上がJava ではコンストラクターを Final にできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート