• <nav id="dstbx"></nav>

    <nav id="dstbx"></nav>
    1. <form id="dstbx"></form>
    2. <small id="dstbx"></small>

      教育行業A股IPO第一股(股票代碼 003032)

      全國咨詢/投訴熱線:400-618-4000

      final關鍵字的作用和特點【final關鍵字的作用詳細介紹】

      更新時間:2021年07月13日18時19分 來源:傳智教育 瀏覽次數:

      好口碑IT培訓


      final關鍵字

      final的英文意思是“最終”。 在Java中,可以使用final 關鍵字聲明類、屬性、方法,在聲明時需要注意以下幾點。

      (1)使用final修飾的類不能有子類。

      (2)使用final修飾的方法不能被子類重寫。

      (3)使用final修飾的變量(成員變量和局部變量)是常量,常量不可修改。

      下面將對final的用法逐一進行講解。


      final關鍵字修飾類

      Java中的類被final關鍵字修飾后,該類將不可以被繼承,即不能派生子類。下面通過一個案例進行驗證,如文件4-7所示。

      文件4-7 Example07.java

      // 使用final關鍵字修飾Animal類
      final class Animal {
          // 方法體為空
      }
      // Dog類繼承Animal類
      class Dog extends Animal {
          //方法體為空
      }
      // 定義測試類
      public class Example07 {
          public static void main (String[] args) {
              Dog dog = new Dog();    //創建Dog類的實例對象
          }
      }
      

      編譯文件4-7,編譯器報錯,如圖4-8所示。

      編譯報錯

      文件4-7中,第2行代碼定義了Animal類并使用final 關鍵字修飾,第6~8行代碼定義了Dog類并繼承Animal類。

      如圖4-8所,當Dog類繼承使用final 關鍵字修飾的Animal類時編譯器報“無法從最終cn.itcast.Animal進行繼承”錯誤,即不能繼承使用final修飾的Animal類。由此可見,被final關鍵字修飾的類為最終類,不能被其他類繼承。


      final關鍵字修飾方法

      當一個類的方法被final 關鍵字修飾后,這個類的子類將不能重寫該方法。下面通過一個案例進行驗證,如文件4-8所示。

      // 定義Animal類
      class Animal {
          //使用final關鍵字修飾shout()方法
          public final void shout () {
          }
      }
      // 定義Dog類繼承Animal類
      class Dog extends Animal{
          //重寫Animal類的shout()方法
          public void shout (){
      
          }
      }
      // 定義測試類
      public class Example08 {
          public static void main (String[] args) {
              Dog dog=new Dog ();     // 創建Dog類的實例對象
          }
      }
      

      編譯文件4-8,編譯器報錯,如圖4-9所示。

      編譯器報錯

      在文件4-8中,第10行代碼在Dog類中重寫了父類Aina中的shout ( )方法,編譯報錯。這是因為Animal類的shout ( )方法被final修飾,而被final關鍵字修飾的方法為最終方法,子類不能對該方法進行重寫。因此,當在父類中定義某個方法時,如果不希望被子類重寫,就可以使用final關鍵字修飾該方法。


      final關鍵字修飾變量

      Java中被final修飾的變量為常量,常量只能在聲明時被賦值次,在后面的程序中,其值不能被改變。如果再次對該常量賦值,則程序會在編譯時報錯。 下面通過一 個案例進行驗證,如文件4-9所示。

      文件4-9 Example09.java

      public class Example09 {
          public static void main (String[] args) {
              final int AGE = 18;    //第一次可以賦值
              AGE = 20;    //再次賦值會報錯
          }
      }
      

      編譯文件4-9,編譯器報錯,如圖4-10所示。

      編譯器報錯

      在文件4-9中,當第4行代碼對AGE進行二次賦值時,編譯器報錯。原因在于使用final定義的常量本身不可被修改。

      注意:在使用final聲明變量時,要求全部的字母大寫。如果一個程序中的變量用public static final聲明,則此變量將成為全局變量,如下面代碼所示。

      public static final String NAME = "哈士奇"


      猜你喜歡:

      Java中this關鍵字的常見用法有哪些?

      Java算法之冒泡排序【超詳細】

      Java中switch條件語句的用法

      Java中for循環語句的用法

      傳智教育java開發培訓課程

      神马影院我不卡,农村丰满肥熟老妇女,午夜电影网,2018日日摸夜夜添夜夜添 网站地图 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>