Java基礎學習之final和多態及類型轉換

final關鍵字:

     final關鍵字是最終的意思,可以修飾類,成員變量,成員方法。

         •    修飾類,類不能被繼承

        •    修飾變量,變量就變成了常量,只能被賦值一次。

        •    修飾方法,方法不能被重寫

    

     final關鍵字面試題

        •    final修飾局部變量

            在方法內部,該變量不可以被改變,只可以賦值一次。

            在方法聲明上,分別演示基本類型和引用類型作爲參數的情況

            基本類型,是值不能被改變

           引用類型,是地址值不能被改變。對象在堆內存的值是可以改變的。

      •    final修飾變量的初始化時機

                在對象構造完畢前即可(非靜態常量)

 

權限修飾符修飾局部變量沒有任何意義。

 

多態:某一個事物,在不同時刻表現出來的不同狀態。

 

看對象時,從有往左看。

 舉例:

  貓可以是貓的類型。貓 m = new 貓();

  同時貓也是動物的一種,也可以把貓稱爲動物。

  動物 d = new 貓();

 

多態前提和體現

      •    有繼承關係

     •    有方法重寫

     •    有父類引用指向子類對象

 

多態時成員訪問特點

    成員變量

           編譯看左邊,運行看左邊

   成員方法

          編譯看左邊,運行看右邊

    靜態方法和類相關

          編譯看左邊,運行看左邊

         所以靜態方法不能算方法的重寫

 

對象的轉換關係

(1)      向上轉型:在創建對象時,對象可以作爲本身的類型引用,可以作爲父類型的引用(將一個子類對象直接賦值給一個父類的引用變量)。

向上轉型語法:<父類型><引用變量>=new<子類型>

實際調用的是子類的方法。

(2)向下 轉型:將父類的對象作爲其子類的類型的引用(需要強制類型轉換)。

                   向下轉型的語法:<子類型> <引用變量> = (<子類型>)<父類型引用變量>;

類型轉換注意事項

(1)向上,向下都必須是兩個類型之間存在繼承關係。

(2)向上時,系統會自動進行類型轉換,無強制轉換。

(3)向下時,只有父類的引用變量才能轉換成子類,一個父類的實例對象是不能被強制轉換成子類的。

(4)基本數據類型的轉換時只能是數值型的數據(包括整型,字符型,浮點型),同時數值型無法同布爾類型轉換。

 

多態的好處:提高代碼的可維護性(由繼承體現)   提高代碼的擴展性

 

 

 


發佈了70 篇原創文章 · 獲贊 4 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章