類class 將一類事物的特徵和動做,封裝爲屬性和方法(封裝相關數據,方法代碼); 封裝 實例,一個具體的個體(new建立) 能夠保存獨立的數據,獨立控制執行指定方法; 引用 保存一個實例的地址 引用特殊值null 局部代碼塊: 在方法中提供一個{}. 局部代碼塊能夠提升棧內存的效率,能夠提早釋放局部的變量內存。 構造方法 構造代碼塊:會在每一次建立對象時調用,構造代碼塊是先與構造方法執行的 使用方式:直接在類中提供一個{} 新建實例時執行,子類調用父類的無參構造方法 class定義類必需要有構造方法 不定義,默認爲無參 構造方法做用:任意 經常使用方法:賦值 this 1.this.屬性名---本類裏的成員變量,當變量名重複時使用 2.this.方法名------本類的方法名 3.This(……)----本類裏的構造方法,減小代碼重複 This()只能用在構造方法中的第一行 Overload 方法重載:一個方法有多種參數傳遞方式 同名不一樣參數, 繼承: 把原有類中的公共的代碼抽取到一個新類中,原有類和新類使用extends關鍵字進行聯。新類稱之爲父類,原有類稱之爲子類,子類會繼承父類的全部屬性和方法。可是子類只能使用對子類可見的屬性和方法。 JAVA只支持單繼承,只能繼承一個父類,一個父類能夠有多個子類 不繼承父類的部分 構造方法 私有成員 private 子類實例 由父類實例和子類實例綁定,總體做爲一個實例 調用時,先找子類,再找父類 Overried 方法重寫:在父子類中出現了方法簽名一致的非靜態方法,就稱之爲重寫(Override),或者稱之爲覆蓋 子類調用父類方法時,父類方法不知足子類的需求,須要重寫, 必須與父類的返回值與參數一致; 兩同:方法名,參數列表相同 返回值異常兩小: 1.返回值: 若是返回值爲基本數據類型,子類的返回值必須和父類相同 若是返回類型爲引用數據類型,子類返回值小於等於父類; 2.異常: 子類向上拋出的異常 要小於等於父類; 一大: 訪問修飾符權限;public >protected>default>privade> 子類的訪問修飾符權限必須大於等於父類; Super super關鍵字能夠調用父類可見的方法和屬性 super()和this()不能共存 1.super.屬性名-----父類裏面的成員變量 2.super.方法名---父類的方法名 3.super()/super(參數) ----調用父類的無參構造/可見方法 Super()只能出如今構造方法體第一句 每個類的構造方法有默認的super(); 多態:事物的多種形態 //編譯看左邊,運行看右邊: 編譯時多態:方法重載 運行時多態:向上造型,方法重寫 一致的類型,全部子類型實例,均可以被當作一致的父類型來處理 向上轉型: 定義一個父類的變量,用以引用子類的地址空間 只能調用父類中定義的方法 向下轉型: 強制轉換,須要保證轉型的安全 Instanceof 判斷運行期的類型 對真實類型及其父類型判斷,都獲得true 抽象類abstract 半成品的類,一個未完成的類 抽象方法只有方法定義,沒有方法代碼 須要用abstract關鍵詞定義 1.做爲通用方法在父類中定義; 2.要求子類必須完成該方法; 3.抽象類不能實例化,未完成時半成品;具體子類能夠建立實例; 抽象要點 被abstract修飾的類稱之爲抽象類,被abstract修飾的方法稱之爲抽象方法 一個類中若是有抽象方法,這個類必須爲抽象類 抽象類不能實例化!!! 抽象類必需要有一個子類,子類能夠實現抽象類中的抽象方法.若是子類實現類的抽象方法,那麼久能夠經過向上造型來使用抽象類. final不能修飾抽象類,final修飾的類爲最終類不能被繼承,抽象類必需要被繼承 抽象類能夠寫構造方法的 抽象類能夠提供普通方法 抽象類中的抽象方法能夠重載 抽象類中抽象方法不能使用private修飾,抽象方法必須被子類實現 抽象方法不能被static修飾,靜態方法能夠直接使用類名調用,在抽象類中沒有意義. 受java的單繼承的影響,抽象類不可以同時繼承多個類 接口interface 接口是功能的集合,接口是比抽象類更抽象的"類",在JDK1.8以前接口中只能放抽象方法. 接口是特殊的類 接口是結構設計共計,用來解耦合,隔離實現 語法: Interface 代替class關鍵詞 implements代替extends關鍵詞 接口中只能定義: 公開的常量 //接口中是能夠的定義變量,, Public static finalinta=5; //變量默認修飾符publicstaticfinal,其實是一個常量 公開的抽象方法 Public abstract void show();//接口中的方法默認修飾符public abstract 接口不能實例化,必須在implements中實現接口中的抽象方法 接口中的方法能夠重載 公開的內部類,內部接口 接口中沒有構造方法 類能夠同時實現多個接口: Class A extends Object implements x,y,z{} 接口之間繼承,不用實現關鍵詞(能夠繼承多個接口),用extends Interface A extends x,y,z{ } 一個類能夠實現多個接口,子接口中能夠有相同的方法(接口中只有方法名沒有具體的實現代碼) java中接口是網狀 java中繼承是樹狀結構 java放棄了對接口的編譯檢查 Javap xxx.calss能夠反編譯 ![](https://s1.51cto.com/images/blog/201908/18/6f444ec9c64b7cf101bdd778019c0d00.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)