1. 程式人生 > 其它 >多型、抽象、介面

多型、抽象、介面

super注意點:

  1. super呼叫父類的構造方法,必須在構造方法的第一個

  2. super必須只能出現在子類的方法或者構造方法中!

  3. super和this不能同時呼叫構造方法

和this的比較:

代表的物件不同:

this:本身呼叫者這個物件

super:代表父類物件的應用

前提

this:沒有繼承也可以使用

super:只能在繼承條件下才可以使用

構造方法

this():本類的構造

super():父類的構造

 

 

重寫:需要有繼承關係,子類重寫父類的方法!

  1. 方法名必須相同

  2. 引數列表必須相同

  3. 修飾符:範圍可以擴大但不能縮小: public>Protected>Default>private

  4. 丟擲的異常:可以被縮小,但不能擴大

重寫,子類的方法和父類必須要一致,方法體不同!

為什麼需要重寫:

  1. 父類的功能,子類不一定需要,或者不一定滿足!

 

 

多型

  • 即同一方法可以根據傳送物件的不同而採用多種不同的行為方式

  • 一個物件的實際型別是確定的,但可以指向物件的引用型別很多

 

  • 多型存在的條件

    • 有繼承關係

    • 子類重寫父類方法

    • 父類引用指向子類物件

 

  • 注意:多型是方法的多型,屬性沒有多型性

 

 

多型注意事項:

  1. 多型是方法的多型,屬性沒有多型

  2. 父類和子類有聯絡 否則就會引發型別轉換異常!ClassCastException!

  3. 存在條件:繼承關係,方法需要重寫,父類引用指向子類物件!Father f1 = new Son();

     

    1. static方法,屬於類,它不屬於例項

    2. final常量

    3. private方法(以上三種都不能用於多型)

 

型別轉換

  1. 父類引用指向子類的物件

  2. 把子類轉換為父類,向上轉型

  3. 把父類轉換為子類,向下轉型,強制轉換

  4. 方便方法的呼叫,減少重複的程式碼

抽象類

  1. 不能new這個抽象類,只能靠子類去實現它

  2. 抽象類中可以寫普通的方法

  3. 抽象方法必須在抽象類中

 

介面

  • 普通類:只有具體實現

  • 抽象類:具體實現和規範(抽象方法)都有

  • 介面:只有規範,自己無法寫方法

介面的本質是契約

 

一個java類中可以有多個class類,但是隻能有一個public class

 

 

異常

  • 檢查性異常:最具代表性的檢查性異常是使用者錯誤或問題引起的異常,這是程式設計師無法預見的。例如要開啟一個不存在檔案時,一個異常就發生了,這些異常在編譯時不能被簡單地忽略

  • 執行時異常:執行時異常是可能被程式設計師避免的異常。與檢查性異常相反,執行時異常可以在編譯時被忽略

  • 錯誤ERROR:錯誤不是異常,而是脫離程式設計師控制的問題。錯誤在程式碼中通常被忽略。例如,當棧溢位時,一個錯誤就發生了,它們在編譯時也檢查不到

  •