【Java】特定操作の禁止final修飾子
本稿は、final修飾子について説明します。
final修飾子は変数の書き換えの禁止、継承の禁止、メソッドオーバーライドの禁止を行えます。
特に複数人で開発する時は、役に立つ機能となります。
final変数
変数宣言時にfinalを使用しておくとその変数は書き換え不能となります。
「final 型 変数名」と記述しましょう。
public class Test { public static void main(String[] args){ final int num = 0; num = 100; } }
Test.java:4: エラー: final変数numに値を代入することはできません
num = 100;
^
エラー1個
finalクラス
クラス宣言時にfinalを使用しておくとそのクラスは継承できなくなります。
「final class クラス名」と記述しましょう。
public class Test { public static void main(String[] args){ } } final class Super{ } class Sub extends Super{ }
Test.java:7: エラー: final Superからは継承できません
class Sub extends Super{
^
エラー1個
finalメソッド
メソッド宣言時にfinalを使用しておくとそのメソッドはオーバーライドできなくなります。
「final 戻り値 メソッド名(引数)」と記述しましょう。
public class Test { public static void main(String[] args){ } } class Super{ final void test(){ } } class Sub extends Super{ void test(){ } }
Test.java:10: エラー: Subのtest()はSuperのtest()をオーバーライドできません
void test(){
^
オーバーライドされたメソッドはfinalです
エラー1個
ディスカッション
コメント一覧
まだ、コメントがありません