注目記事

【Javaコード入門】修飾子_⑤final修飾子

メンバーの上書きを禁止する – final修飾子

final修飾子は、メンバーの上書きを禁止します。メソッドであればサブクラスでのオーバーライドを禁止しますし、フィールドであれば値の再代入を禁止します。また、クラスであればextends句による継承を禁止します。

ModFinal1.java

  1. package com.example.mynavi.modifier;
  2.  
  3. public final class ModFinal1 { }
  4.  
  5. //class ChildClass extends ModFinal1 {} → クラスを継承できない

ModFinal2.java

  1. package com.example.mynavi.modifier;
  2.  
  3. public class ModFinal2 {
  4.   final void test() { }
  5. }
  6. class ChildClass2 extends ModFinal2 {
  7.   //void test() {}  → メソッドをオーバーライドできない
  8. }

ModFinal3.java

  1. package com.example.mynavi.modifier;
  2.  
  3. public final class ModFinal3 {
  4.   final int x = 0;
  5.   void test() {
  6.     //this.x = 5;   → フィールドに再代入できない
  7.   }
  8. }
修飾子_目次
修飾子
アクセス修飾子
abstract修飾子
static修飾子
final修飾子
sealed/non-sealed修飾子
transient修飾子
volatile修飾子
synchronized修飾子
native修飾子
strictfp修飾子

監修

山田祥寛(有限会社 WINGSプロジェクト)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NEC にてシステム企画業務に携わるが、2003年 4 月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト(https://wings.msn.to/)」の代表でもある。主な著書に『改訂 3 版JavaScript 本格入門』(技術評論社)、「独習シリーズ(C#・Python・PHP・Ruby・JSP&サーブレットなど)」(翔泳社)、「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravel など)」(Amazon Kindle)など。売り上げの累計は100万部を超える。