日常學習 8.08 Java面向?qū)ο笕筇卣髦?多態(tài)
8.08
Java面向?qū)ο笕筇卣髦?多態(tài)
生活中的多態(tài)
-<input> 根據(jù)不同type屬性值,產(chǎn)生不同形態(tài)
-水根據(jù)不同溫度條件,產(chǎn)生不同形態(tài)。 常溫:液態(tài)水 沸點:氣態(tài)水(水蒸氣),凝點:固態(tài)水(冰)
總結(jié):一件事根據(jù)不同的環(huán)境條件,產(chǎn)生不同的 結(jié)果/形態(tài)
繼承:主角是子類
多態(tài):主角是父類
編程中的多態(tài):
一個父類根據(jù)使用不同的子類對象,調(diào)用同樣的方法,產(chǎn)生不同的結(jié)果
多態(tài)的前提條件
1.必須出現(xiàn)在繼承體系中
2.必須要有方法重寫
3.必須滿足一種寫法 "向上轉(zhuǎn)型"
多態(tài)的驗證
滿足以上三個條件的基礎(chǔ)上,調(diào)用同一個方法,產(chǎn)生不同的結(jié)果
多態(tài)的其他常見寫法
1.當數(shù)組的類型是父類的類型時,所有子類都能存入數(shù)組中
滿足 向上轉(zhuǎn)型
2.當方法的形式參數(shù)是父類的類型時,所有的子類對象都能傳進來
滿足 向上轉(zhuǎn)型 (父類類型a) 傳參 (子) a = 子)
3.當方法返回值的類型是父類的類型時,所有的子類對象都能返回出來
多態(tài)的作用與弊端
好處:讓程序更加靈活,提高代碼擴展性
缺點:在多態(tài)的環(huán)境中,無法訪問子類特有的方法
解決方法:向下轉(zhuǎn)型 ==> 強轉(zhuǎn) (數(shù)據(jù)類型)變量名
接口類型(對標css)
定義關(guān)鍵字 interface
接口與類的對比
-成員屬性
默認所有的屬性都是常量(不變final+共享 public static)
接口中屬性的定義可以省略public final static
-構(gòu)造方法
接口中沒有構(gòu)造方法
-成員方法
默認情況下絕對是抽象方法,可以省略public abstract
接口的作用
1.設(shè)計
2.規(guī)則/協(xié)議 (抽象方法)
繼承體系
-實現(xiàn)關(guān)系 類與接口之間的關(guān)系(師徒)
關(guān)鍵字 implements
class A implements 接口B,接口C,....
-特點:
類A可以實現(xiàn)多個接口(多實現(xiàn))
案例:
模擬電腦計算機的USB接口運行
-電腦類
-USB接口
-鼠標子類
-鍵盤子類
-測試類
心得:忘記加關(guān)鍵字了,平白無故浪費好多時間,而且代碼量變多,對需要的數(shù)據(jù)的類型判斷出現(xiàn)差錯,需要多加練習。