一、包含抽象方法的類叫作抽象類。若是一個類包含一個或多個抽象方法,該類必須被限定爲抽象的.(不然,編譯器就會報錯)java
二、若是從一個抽象類繼承,並想建立該新類的對象,那麼就必須爲基類的全部抽象方法提供方法定義。若是不這樣作(能夠選擇不作),那麼導出類便也是抽象類,且編譯器將會強制咱們用abstract關鍵字來限定這個類。程序員
三、使某個類成爲抽象類並不須要全部的方法都是抽象的。工具
四、抽象是頗有用的重構工具,由於它們使咱們能夠很容易的將公共方法沿着繼承層次結構向上移動。對象
一、abstract關鍵字容許人們在類中建立一個或多個沒有任何定義的方法——提供接口部分,也能夠有有定義的方法。繼承
二、interface這個關鍵字產生一個徹底抽象的類。接口
三、一個接口表示「全部實現了該特定接口的類看起來都像這樣」。編譯器
四、接口不必定是public的,不加關鍵字則是寶訪問權限的,既是protected的。編譯
五、接口的方法必定是public的。變量
六、繼承用extends擴展
七、實現用implement.
一、建立一個可以根據所傳遞的參數對象不一樣而具備不一樣行爲的方法被稱爲策略模式。
一、一個類智能直接繼承一個類。
二、一個類能實現多個接口。
三、使用接口的緣由:爲了可以向上轉型爲多個基類型(以及由此帶來的靈活性);防止客戶端程序員建立該類的對象。
四、若是要建立不帶任何方法定義和成員變量的基類,那麼應該選擇接口而不是抽象類。
一、經過繼承,能夠很容易地在接口中添加新的方法聲明,還能夠經過繼承在新接口中組合數個接口。
二、接口能夠繼承接口,並且是能夠繼承多個接口
三、接口裏能夠組合接口
4在打算組合的不一樣接口中使用的相同的方法名一般會形成可讀性的混亂,請儘可能避免這種狀況。
一、放入接口中的任何域都自動是static和final的。
9.7.1初始化接口中的域
一、在接口中定義的域不能是「空final」,可是能夠被很是量表達式初始化。
二、既然域是static的,他們就能夠在類第一次被加載時初始化,這發生任何域首次被訪問時。
一、接口能夠嵌套在類或其餘接口中。
9.9接口與工廠