多型、抽象、介面
-
super呼叫父類的構造方法,必須在構造方法的第一個
-
super必須只能出現在子類的方法或者構造方法中!
-
super和this不能同時呼叫構造方法
和this的比較:
代表的物件不同:
this:本身呼叫者這個物件
super:代表父類物件的應用
前提
this:沒有繼承也可以使用
構造方法
this():本類的構造
super():父類的構造
重寫:需要有繼承關係,子類重寫父類的方法!
-
方法名必須相同
-
引數列表必須相同
-
修飾符:範圍可以擴大但不能縮小: public>Protected>Default>private
-
丟擲的異常:可以被縮小,但不能擴大
重寫,子類的方法和父類必須要一致,方法體不同!
為什麼需要重寫:
-
父類的功能,子類不一定需要,或者不一定滿足!
多型
-
即同一方法可以根據傳送物件的不同而採用多種不同的行為方式
-
一個物件的實際型別是確定的,但可以指向物件的引用型別很多
-
多型存在的條件
-
有繼承關係
-
子類重寫父類方法
-
父類引用指向子類物件
-
-
注意:多型是方法的多型,屬性沒有多型性
多型注意事項:
-
多型是方法的多型,屬性沒有多型
-
父類和子類有聯絡 否則就會引發型別轉換異常!ClassCastException!
-
存在條件:繼承關係,方法需要重寫,父類引用指向子類物件!Father f1 = new Son();
-
static方法,屬於類,它不屬於例項
-
final常量
-
private方法(以上三種都不能用於多型)
-
型別轉換
-
父類引用指向子類的物件
-
把子類轉換為父類,向上轉型
-
把父類轉換為子類,向下轉型,強制轉換
-
方便方法的呼叫,減少重複的程式碼
抽象類
-
不能new這個抽象類,只能靠子類去實現它
-
抽象類中可以寫普通的方法
-
抽象方法必須在抽象類中
介面
-
普通類:只有具體實現
-
抽象類:具體實現和規範(抽象方法)都有
-
介面:只有規範,自己無法寫方法
介面的本質是契約
一個java類中可以有多個class類,但是隻能有一個public class
異常
-
檢查性異常:最具代表性的檢查性異常是使用者錯誤或問題引起的異常,這是程式設計師無法預見的。例如要開啟一個不存在檔案時,一個異常就發生了,這些異常在編譯時不能被簡單地忽略
-
執行時異常:執行時異常是可能被程式設計師避免的異常。與檢查性異常相反,執行時異常可以在編譯時被忽略
-
錯誤ERROR:錯誤不是異常,而是脫離程式設計師控制的問題。錯誤在程式碼中通常被忽略。例如,當棧溢位時,一個錯誤就發生了,它們在編譯時也檢查不到
-