----------------------
asp.net+android+ios開發
、.net培訓
、期待與您交流! ----------------------
多型:事物的多種體現形態
體現:父類引用指向自己的子類物件 fu f = new zi(); f.方法();
好處:極大提高程式的擴充套件性
前提:必須是類與類之間有關係,繼承(extends)或者是實現(implements)
通常存在覆蓋,只能使用父類的引用訪問父類中的成員
關鍵字:instanceof所屬型別判斷,於判斷關鍵字相連,使用條件是當子類型別有限,選項少的情況下.
多型中,非靜態方法的特點:
編譯時:參閱引用型變數所屬的類中是否有呼叫的方法, 沒有則編譯失敗
執行時:參閱物件所屬的類中是否有呼叫的方法
簡單概括:成員函式在多型呼叫時,編譯看左邊,執行看右邊 fu f = new zi()
object,超類
所有物件的直接或者間接父類,該類定義的是所有物件都具備的功能.
equals方法:比較類的記憶體位址值,一般會被複寫
內部類:將乙個類定義在另乙個類裡面,裡面的類稱為內部類(巢狀類)
內部類定義在外部類的成員位置上:可以被修飾符修飾.
pirvate:將內部類在外部封裝
如果非私有,可以在外部其他類中直接建立內部類物件:
外部類名.內部類名 變數名 = 外部類物件.內部類物件;
例:outer.inner in = new outer().new inner();
被static修飾的內部類只能訪問外部類中的靜態成員。
外部其他類中直接訪問static內部類的非靜態成員: new outer.inner().function();
當內部類中定義了靜態成員,該內部類必須是靜態的
內部類定義在區域性位置上:可以直接訪問外部類中的成員.同時可以訪問所在區域性中的區域性變數,但必須是被final修飾的。
訪問規則:
1,內部類可以直接訪問外部類中的成員,包括私有,之所以可以直接訪問,是因為內部類中持有乙個外部類的引用
格式:外部類名.this
2外部類要訪問內部類,必須建立內部類的物件
匿名內部類:
定義的前提:必須實現介面 或者繼承乙個類
匿名內部類就是乙個匿名子類物件(帶內容的子類物件).定義的方法最好不要超過3個
格式:new 父類或介面().方法
throw
|__error (錯誤,停止程式)
|__exception(異常,除錯後繼續執行)
異常是對問題的描述,把問題封裝成物件,throwable 所有類及監理的物件都具備可拋性
好處:將問題進行封裝,將正常**和問題**分離,提高閱讀性
呼叫到丟擲異常的功能時,丟擲幾個處理幾個
乙個try對應多個catch,多個catch中父類catch放在最下面,catch內需要定義針對性的處理方式,不要簡單定義printstacktrace語句
printstacktrace
:jvm預設使用,列印異常的堆疊跟蹤資訊
/異常名稱 異常資訊 異常出現位置
printstacktrace(printstream s)
通常用該方法將異常內容儲存在日誌檔案中,以便查閱
在函式上宣告異常,便於提高安全性,讓呼叫者處理,不處理就編譯失敗
try
catch(異常類 變數)
finally
finally**塊只有一種情況不會被執行。就是在之前執行了system.exit(0)
對多異常的處理
1:宣告異常時,建議宣告更為具體的異常,這樣可以處理的更具體
2:宣告幾個異常,就有幾個catch塊,如果多個catch塊中出現繼承關係,父類異常catch塊放在最下面
自定義異常:異常自定義 必須繼承exception是異常體系的特點
異常類和異常物件都要被丟擲,具備可拋性是 throwable體系中的獨有特點
throws: 使用在函式上連線異常類,可以連線多個,用逗號(,)隔開
throw:使用在函式內,連線著異常物件
自定義異常時,如果該異常發生無法繼續進行運算,就讓該異常繼承runtime異常
異常區別:
1,編譯時被檢測的異常,能處理,處理完程式繼續執行的,繼承exception
2,編譯時不被檢測:不能處理,讓程式停止,繼承執行時異常,runtime exception以及它的子類
異常在子父類覆蓋的體現:
1,子類在覆蓋父類時,如果父類的方法丟擲異常,子類的覆蓋方法只能丟擲父類的異常或者該異常的子集
2,如果父類方法丟擲多個異常,子類在覆蓋方法時,只能丟擲父類異常的子集
3,如果父類或者介面的方法中沒有異常丟擲,那麼子類在覆蓋方法時,也不能丟擲異常
如果子類方法發生異常,就必須進行try catch 處理,絕對不能丟擲
4,如果函式宣告了異常,呼叫者需要進行處理,處理方法可try可throw
當函式內有throw丟擲異常物件,並未進行處理,要在函式上宣告.如果丟擲的runtime,可以不用宣告
----------------------
asp.net+android+ios開發
、.net培訓
、期待與您交流! ----------------------
黑馬程式設計師 物件導向 多型
asp.net unity開發 net培訓 期待與您交流!多型 可以理解為事物存在的多種體現形態。父類的引用指向子類的物件。1.多型的體現 父類的引用指向子類的物件,父類的引用接收子類的物件。2.多型的前提 類與類之間必須是繼承或者實現的關係。通常還有乙個前提 就是覆蓋 3.多型的好處 大大的提高了...
黑馬程式設計師 《物件導向 多型 03
asp.net android ios開發 net培訓 期待與您交流!多型 某一類事物的多種存在形態 因為有的繼承,所以有了父類和子類關係,那麼就提現出來了多型的特性。當一類事物之間肯定有存在某種關係,例如兒子和父親,學生和人,工人和人,那麼他們也有共性,那麼當我們劃分的越細,那麼子類就越多,那麼我...
黑馬程式設計師 C 物件導向之多型
asp.net unity開發 net培訓 期待與您交流!把一組相關的物件放到乙個陣列或集合中,然後呼叫它們名字相同的方法,在這種情況下,物件導向的多型性就體現出來了,這些物件可以不是相同型別的物件。如果它們都繼承自某乙個類,可以把這些派生類的物件放到乙個陣列中。如果這些物件都有同名方法,也可以呼叫...