Javaのfinal修飾子はクラスを継承できなくしたり、メソッドをオーバーライドできなくしたり、変数の値を変更できない定数化したりできます。この記事では、final修飾子の使い方をサンプルを交えてご紹介します。

finalクラス

final 修飾子を指定してクラスを宣言すると、そのクラスはサブクラスで継承できなくなります

final class Example {
  // サブクラスで継承不可
}

finalメソッド

final 修飾子を指定してメソッドを宣言すると、そのメソッドはサブクラスでオーバーライドできなくなります

class Example {
  final void example() {
    // サブクラスでオーバーライド不可
  }
}

final変数

final 修飾子を指定してメンバ変数を宣言すると、そのメンバ変数は定数として扱われます。一度値を代入すると、その値を変更できません。

class Example {
  final int example = 1; // 値の変更不可
}