首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java final 類:禁止繼承、隱式 final 方法與效率考量

     編輯:Java 相關知識

final 類定義與效果

final class Dinosaur { int i = 7; void f() {} }
// class Further extends Dinosaur {} // 編譯錯誤:不能繼承 final 類
  • 類聲明 final → 禁止被繼承。
  • 數據成員可 final 可非 final,不受類 final 影響。
  • 類中所有方法隱式 final(無法覆寫),編譯器同享內聯優化機會。

顯式加 final 方法無意義

類已 final,方法再加 final 純屬贅餘。

設計動機

  1. 安全/不變性:類設計完備、不應被修改(如 String、包裝類)。
  2. 效率:編譯器可激進優化(內聯、去虛擬化),JIT 也更易優化。

示例:Jurassic

final class Dinosaur { int i=7; int j=1; SmallBrain x=new SmallBrain(); void f(){} }
public class Jurassic {
    public static void main(String[] args) {
        Dinosaur n = new Dinosaur(); n.f(); n.i=40; n.j++; // 正常使用
    }
}

Dinosaur 實例字段可變,但類結構不可繼承擴展。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved