抽象類 介面 內部類JAVA048 051

2021-07-05 23:58:13 字數 2294 閱讀 2216

1、s01e048_01抽象(abstract)類和抽象方法

抽象方法的意義:將方法的設計和方法的實現分離

2、s01e049_01介面(inte***ce)詳解

(1)介面中只有:常量和抽象方法;

(2)常量定義時public static final寫或不寫都可以;

(3)方法宣告時public abstract寫或不寫都可以;

(4)類可以實現多個介面(類繼承只能單繼承);

(5)子類通過implements來實現介面中的規範;

(6)介面不能建立例項,但是可用於宣告引用變數型別;

(7)乙個類實現了介面,必須實現介面中所有的方法,並且這些方法只能是public的;

(8)介面支援多繼承(extends父介面1,父介面2…)

3、s01e051_01內部類詳解

內部類的作用:

(1)內部類提供了更好的封裝。只能讓外部類直接訪問,不允許同乙個包中的其它類直接訪問。

(2)內部類可以直接訪問外部類的私有屬性,內部類被當成其外部類的成員。但外部類不能訪問內部類的內部屬性。

內部類的分類:

(1)成員內部類(可以使用private、protected、public任意進行修飾。類檔案:外部類$內部類.class)

a)非靜態內部類(外部類裡使用非靜態內部類和平時使用其它類沒什麼不同)

[1]非靜態內部類必須寄存在乙個外部類物件裡。因此,如果有乙個非靜態內部類物件,那麼一定存在對應的外部類物件。非靜態內部類物件單獨屬於外部類的某個物件。

[2]非靜態內部類可以使用外部類的成員,但是外部類不能直接訪問非靜態內部類成員。

[3]非靜態內部類不能有靜態方法、靜態屬性、靜態初始化塊。

[4]靜態成員不能訪問非靜態成員:外部類的靜態方法、靜態**塊不能訪問非靜態內部類,包括不能使用非靜態內部類定義變數、建立例項。

[5]成員變數訪問要點:

1、內部類裡方法的區域性變數:變數名

2、內部類屬性:this.變數名

3、外部類屬性:外部類名.this.變數名

[6]內部類的訪問:

1、外部類中定義內部類:new innerclass()

2、外部類以外的地方使用非靜態內部類

public

class outer

}class face}}

b)靜態內部類

[1]定義方式:

static class classname

[2]使用要點:

1、當乙個靜態內部類物件存在,並不一定存在對應的外部類物件。因此,靜態內部類的例項方法不能直接訪問外部類的例項方法。

2、靜態內部類看做外部類的乙個靜態成員。因此,外部類的方法中可以通過:靜態內部類.名字 訪問靜態內部類的靜態成員。通過 new靜態內部類() 訪問靜態內部類的例項。

3、在外部類的外面建立靜態內部類:

face.teststaticinner ainner = new face.teststaticinner();

public

class outer

}class face}}

(2)匿名內部類適合那種只需要使用一次的類。比如:鍵盤監聽操作等等。語法:

new 父類構造器(實參列表)實現介面(){

//匿名內部類類體

this.addwindowlistener(new windowadapter()

});this.addkeylistener(new keyadapter()

@override

public

void

keypressed(keyevent e)

@override

public

void

keyreleased(keyevent e)

});

(3)區域性內部類定義在方法內部。作用域只限於本方法。用得非常少。

Java語法 抽象類 介面 內部類

抽象類的意義在於 為子類提供統一的 規範的模板。子類必須實現抽象類的抽象方法。示例 抽象方法只有宣告,沒有實現 抽象方法只能在抽象類中 public abstract class animal public static void main string args class dogextends ...

內部類 抽象類 介面

b color brown size large 1.內部類也稱為巢狀類。內部類允許乙個類被定義在另乙個類,或乙個語句甚至乙個表示式中。在一般的內部類中是不允許宣告任何static成員的。只有頂層類可以宣告。如果要在一般內部類中使用static成員,必須引用在頂層類中宣告好的成員。外部類可以呼叫靜態...

內部類,抽象類和介面

abstract普通類繼承抽象類要把抽象類中的所有抽象方法都覆蓋,抽象類繼承抽象類不用。抽象類不能被建立物件。普通類不能有抽象方法,抽象類可以有普通方法。建立了抽象父類的物件new後面是子類物件是可以實現的。implements用來繼承介面,inte ce介面中不存在具體的方法,介面中只存在抽象方法...