抽象類是介於普通類和介面之間的形式
包含抽象方法的類叫做抽象類。如果乙個類包含乙個或多個抽象方法, 該類必須限定為抽象的
為抽象類建立物件是不安全的,會產生錯誤
匯出類必須實現基類的抽象方法,否則該匯出類也是抽象類
必須用abstract關鍵字來限定抽象類和抽象方法
抽象類可以沒有任何抽象方法
inte***ce關鍵字產生乙個完全抽象的「類」,其中根本沒有任何具體實現,宣告方法但沒有任何方法體
介面被用來建立類與類之間的協議
界面前可以新增public關鍵字,否則就具有包訪問許可權
介面可以包含域,隱式地位static和final的
實現介面要使用implements關鍵字鏈結
介面中的方法隱式地為public的。實現介面時,要實現的方法必須定義為public的,否則是包訪問許可權
可以將實現類物件向上轉型為介面型別
遵循介面來遍寫類,可以減輕介面和型別的耦合
介面比抽象類更純粹的地方在於,介面沒有任何具體實現,即沒有任何與介面相關的儲存
因此可以繼承任意多個介面,並可以向上轉型為任意乙個介面
繼承的類必須放在前面,後面跟著介面
基類中的同名方法可以幫助實現介面中的方法
如果知道某事物應該成為乙個基類,首先考慮讓其成為介面
介面可以繼承介面,用extends
名字衝突
如果方法相同則不會有什麼問題,但是如果簽名或者返回型別不同,會導致介面間不相容(incompatible)
乙個介面可以有不同的實現方式
常用的方法是策略模式:「你可以用任何你想要的物件來呼叫我的方法,只要你的物件遵循我的介面」
介面對比類的強大之處:讓方法接受介面,可以讓任何一種類都適用該方法
介面中的任何域都自動是static,final和public的
介面中的域不能是空final,但可以被非常量表示式初始化
這些域不是介面的一部分,被儲存在介面的靜態儲存區域內
介面可以巢狀在其他介面中
實現某個介面時,不需要實現巢狀在內部的介面
典型設計模式:工廠方法模式
**將完全和介面的實現分離,可以透明地將某個實現替換為另乙個實現
java反射筆記整理
1.class物件的三種獲取方式 test public void threemethodforclassobj throws classnotfoundexception2.獲取父類class物件 獲取父類class物件,由於單一繼承特性,所以只會獲取到乙個class物件 test public ...
Java學習筆記 介面
package cn.itcast.demo01 public abstract 返回值型別 方法名稱 引數 固定關鍵字 public inte ce myinte ceabstract package cn.itcast.demo01 public class myinte ceabstracti...
Java學習筆記整理 Map
集合 collection map 鍵值對 key value對映表 預設 hashmap hashtable concurrenthashmap linkedhashmap sortedmap i treemap 1.hashmap mapmap new hashmap 增刪改查 map.put ...