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介面中不存在具體的方法,介面中只存在抽象方法...