javaSE之面向物件與內部類
繼承:有權使用父類成員,可以不重寫直接用。
實現:實現一個介面,擁有介面功能,但需實現類自己重寫,側重重寫。
介面
-
語法: 1.7及之前
-
公共靜態常量:public static final 其中這些可任意省略,預設的。
-
公共抽象方法(無方法體):public abstract 可任意省略。
-
-
使用:
-
介面不能例項化
-
需要通過實現類進行實現 implements
-
使用:通過具體的實現類物件呼叫
-
具體實現類:重寫所有抽象方法+按需新增
-
抽象實現類:按需重寫+按需新增。 需要具體的子類繼承,重寫抽象方法
-
-
介面可多實現,類只能單繼承。
-
一個類先繼承後實現。
-
只能類實現介面,多實現關係。
-
介面與介面之間,只能繼承,不能實現,一個介面可以多繼承其他介面
-
內部類(可繼承extends,可實現implements)
-
成員內部類
-
私有內部類
-
靜態內部類
-
區域性內部類
-
匿名內部類:
-
作用:簡化實現類|子類,沒有自己類本身作用的實現類|
-
匿名內部類物件 :實現類|子類+建立物件
-
匿名物件:只能在當前位置使用一次
-
引用指向匿名內部類物件 介面多型:介面引用呼叫的為介面中定義的成員
-
匿名內部類物件作為方法的實參
-
-
new Smoke(){ //實現類類體|抽象類的子類類體 @Override public void smoking() { System.out.println("邊吸菸邊吐菸圈..."); } }
-
注意:
-
成員內部類中不能定義靜態內容,除了靜態常量。
-
成員內部類中可以直接使用外部類的成員,包括私有
-
外部類中可以通過成員內部類的物件呼叫成員內部類的成員 ,包括私有
-
通過外部類物件去建立成員內部類物件,通過成員內部類物件呼叫成員內部類成員。
-
作用:簡化匿名內部類物件
-
前提:繼承或介面(介面中只有一個必須被重寫的抽象方法)
-
強制檢查是否為函式式介面: @FunctionalInterface
-
語法:() ->{}
-
() 介面中抽象方法的引數列表
-
-> lambda符號
-
{} 重寫方法的方法體
-
-