メンバーの上書きを禁止する – final修飾子
final修飾子は、メンバーの上書きを禁止します。メソッドであればサブクラスでのオーバーライドを禁止しますし、フィールドであれば値の再代入を禁止します。また、クラスであればextends句による継承を禁止します。
ModFinal1.java
- package com.example.mynavi.modifier;
- public final class ModFinal1 { }
- //class ChildClass extends ModFinal1 {} → クラスを継承できない
ModFinal2.java
- package com.example.mynavi.modifier;
- public class ModFinal2 {
- final void test() { }
- }
- class ChildClass2 extends ModFinal2 {
- //void test() {} → メソッドをオーバーライドできない
- }
ModFinal3.java
- package com.example.mynavi.modifier;
- public final class ModFinal3 {
- final int x = 0;
- void test() {
- //this.x = 5; → フィールドに再代入できない
- }
- }
- 修飾子_目次
- 修飾子
- アクセス修飾子
- 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万部を超える。