還記得Josh在上Java課程時 介面及抽象類別是頻頻搞混,到現在久沒碰還是有點昏頭,不如就把它寫在部若格來提醒自己吧!!
介面 (Interface)
介面的方法會自動冠上 Public 及 abstract 因為是抽象是要給人實做的,所以冠上Private Protected 及final都會導致失敗
介面只可有抽象方法,介面也不可被實體化
一個類別可實做(implements)多個介面,不可繼承
介面只可繼承介面,不可實做,因為實做就必須建立了一般方法
介面也不可繼承類別,因為會把一般方法繼承過來,就不符合介面的用意
介面也可以有屬性,但會被冠上final和public 所以必須給予初始直
抽象類別(Abstract Class)
抽象類別內,可有一般方法或是抽象方法,差別在於 一般方法會有大括號{}放置內容,而抽象方法則沒有{}以;結尾,讓人實做
而 abstract 方法也不可冠上final 因為要給人實做
抽象類別也不可被實體化
子類別繼承抽象類別必須實作方法 否則子類別就要變為抽象類別
EX:
abstract class book{
String name;
String isCall;
book(String N , String S){
this.name = N;
this.isCall = S;
}
abstract public void show();
}
abstract class Test extends book{
//super("aa","CC");
Test(String N, String S) {
super(N, S);
// TODO Auto-generated constructor stub
}
// public void show(){
// System.out.println(this.name);
// }
// 如果此子類別為一般類別則要實做show()
}
以上來源皆參考 基峯"SCJP6.0認證教戰手冊"