Java 最終キーワード
Java の最終キーワード
このチュートリアルでは、Java の final 変数、メソッド、およびクラスについて例を挙げて学習します。
Java では、final
キーワードは、定数を示すために使用されます。変数、メソッド、およびクラスで使用できます。
エンティティ (変数、メソッド、またはクラス) が宣言されたら final
、一度だけ割り当てることができます。つまり、
- 最後の変数を別の値で再初期化することはできません
- 最終的なメソッドはオーバーライドできません
- 最終クラスは延長できません
1. Java最終変数
Java では、最終変数の値を変更することはできません。たとえば、
class Main {
public static void main(String[] args) {
// create a final variable
final int AGE = 32;
// try to change the final variable
AGE = 45;
System.out.println("Age: " + AGE);
}
}
上記のプログラムでは、age という名前の final 変数を作成しました。 .そして、最終変数の値を変更しようとしました.
プログラムを実行すると、次のメッセージとともにコンパイル エラーが発生します。
cannot assign a value to final variable AGE
AGE = 45;
^
注意 :Java で final 変数を宣言するには、大文字を使用することをお勧めします。
2. Java 最終メソッド
最終メソッドと最終クラスについて学習する前に、Java 継承について理解していることを確認してください。
Java では、final
メソッドを子クラスでオーバーライドすることはできません。たとえば、
class FinalDemo {
// create a final method
public final void display() {
System.out.println("This is a final method.");
}
}
class Main extends FinalDemo {
// try to override final method
public final void display() {
System.out.println("The final method is overridden.");
}
public static void main(String[] args) {
Main obj = new Main();
obj.display();
}
}
上記の例では、display()
という名前の final メソッドを作成しました。 FinalDemo
の中 クラス。ここでは、メイン クラスは FinalDemo を継承します クラス。
Main の final メソッドをオーバーライドしようとしました クラス。プログラムを実行すると、次のメッセージとともにコンパイル エラーが発生します。
display() in Main cannot override display() in FinalDemo
public final void display() {
^
overridden method is final
3. Java 最終クラス
Java では、最終クラスを別のクラスに継承することはできません。たとえば、
// create a final class
final class FinalClass {
public void display() {
System.out.println("This is a final method.");
}
}
// try to extend the final class
class Main extends FinalClass {
public void display() {
System.out.println("The final method is overridden.");
}
public static void main(String[] args) {
Main obj = new Main();
obj.display();
}
}
上記の例では、FinalClass という名前の最終クラスを作成しました。 .ここでは、Main によって最終クラスを継承しようとしました。 クラス。
プログラムを実行すると、次のメッセージとともにコンパイル エラーが発生します。
cannot inherit from final FinalClass
class Main extends FinalClass {
^
Java