English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このチュートリアルでは、Javaのfinal変数、finalメソッド、finalクラスについてサンプルを通じて学びます。
Javaでfinalキーワードは常量を表します。変数、メソッド、クラスと一緒に使用できます。
実体(変数、メソッド、クラス)がfinalと宣言されると、一度しか割り当てられません。つまり、
final変数は他の値で再初期化できません
finalメソッドはオーバーライドできません
finalクラスは継承できません
Javaで、final変数の値は変更できません。例えば、
class Main { public static void main(String[] args) { //final変数の作成 final int AGE = 32; //final変数の変更を試みました AGE = 45; System.out.println("Age: "} + AGE); } }
上記のプログラムでは、ageという名前のfinal変数を作成し、final変数の値を変更しようとしました。
プログラムを実行するときに、以下のエラーメッセージが表示され、コンパイルエラーが発生します。
final変数AGEに値を割り当てることができません AGE = 45; ^
注意:Javaでfinal変数を宣言する際には大文字形式を使用することをお勧めします。
finalメソッドやfinalクラスについて理解する前に、まず以下を確認してくださいJava 继承.
Javaで、finalメソッドは子クラスでオーバーライドできません。例えば、
class FinalDemo { //finalメソッドの作成 public final void display() { System.out.println("これはFinalメソッドです。"); } } class Main extends FinalDemo { //finalメソッドをオーバーライドしようとしました public final void display() { System.out.println("Finalメソッドがオーバーライドされました。"); } public static void main(String[] args) { Main obj = new Main(); obj.display(); } }
上記の例では、FinalDemoクラス内にdisplay()と名付けられたfinalメソッドを作成しました。ここでは、MainクラスがFinalDemoクラスを継承しています。
Mainクラスのfinalメソッドをオーバーライドしようとしました。プログラムを実行すると、以下のようなエラーメッセージが表示され、コンパイルエラーが発生します。
Mainのdisplay()はFinalDemoのdisplay()をオーバーライドできません public final void display() { ^ オーバーライドされたメソッドはfinalです
Javaで、finalクラスは他のクラスに継承されません。例えば、
final class FinalClass { //finalメソッドの作成 public void display() { System.out.println("これはfinalメソッドです。"); } } class Main extends FinalClass { //finalメソッドをオーバーライドしようとしました public void display() { System.out.println("重写final方法"); } public static void main(String[] args) { Main obj = new Main(); obj.display(); } }
上記の例では、FinalClassという名前のfinalクラスを作成しました。ここで、Mainクラスがfinalクラスを継承しようと試みています。
プログラムを実行するときに、以下のエラーメッセージが表示され、コンパイルエラーが発生します。
cannot inherit from final FinalClass class Main extends FinalClass { ^