1、抽象類
含有abstract修飾符的class即為抽象類,abstract 類不能建立例項物件。在書寫抽象類有要注意:
含有抽象方法的類必須定義為抽象類。而抽象類中可以不含有抽象方法。由於抽象方法類似與方法宣告,沒有實現部分,所以必須要進行實現。如果其中不含有抽象方法,那麼完全可以將它用乙個具體的實現類來替換。
抽象類中定義抽象方法必須在具體子類中實現,所以,不能有抽象構造方法或抽象靜態方法。構造方法和靜態方法都是獨屬乙個類的,沒有繼承和覆寫等特性,所以抽象類中的抽象靜態方法和抽象構造方法沒有存在的必要。
如果子類沒有實現抽象父類中的所有抽象方法,那麼子類也必須定義為抽象型別。想一想,如果具體的實現子類沒有實現抽象父類中定義的所有抽象方法,那麼當子類例項化後就可以呼叫抽象父類中的抽象方法,而這個方法卻沒有實現,這樣一來就會造成錯誤。
2、介面
inte***ce testinvocation
}; }
public class test implements testinvocation
}
可以在介面中執行操作,不知道吧,快來了解吧!
介面(inte***ce)可以說成是抽象類的一種特例,介面中的所有方法都必須是抽象的。介面中的方法定義預設為public abstract型別,介面中的成員變數型別預設為public static final。
在實際的應用中,介面使用的非常廣泛,因為他可以使程式解藕。因為介面中定義了一系列的抽象方法,而抽象方法在一定的程度上為公共方法的書寫提供了標準,如方法名、返回型別、引數等。這樣我們只需要根據介面實現相應的方法即可向其他的程式提供相應的功能,任何乙個類都可以實現介面提供功能,也增加了程式的可擴充套件性能。
介面中提供的成員變數缺省會加public static final,也就是相當於乙個不可修改的常量。寫到介面中的成員變數肯定是不能被隨便修改的,否則就失去了標準,當其他程式引用這個量時會得到各種結果,因為誰都可以進行修改。
介面中預設的方法為public abstract的。
inte***ce dd
3、抽象類和介面的比較
抽象類可以有構造方法,構造方法中可以對變數進行初始化。介面中不能有構造方法。
抽象類中可以有普通成員變數,介面中沒有普通成員變數,只有常量。
抽象類中可以包含非抽象的普通方法,介面中的所有方法必須都是抽象的,不能有非抽象的普通方法。
抽象類中的抽象方法的訪問型別可以是public,protected和預設型別,但介面中的抽象方法只能是public型別的,並且預設即為public abstract型別。
可以看出,其實抽象類提供規定的精細程式要比介面細,抽象方法可以用除了private外的所有訪問控制符進行修飾。也就是說,其抽象方法可以規定是由**包下的哪些類來實現。而介面的範圍很大,任何包下的任何類都可提供實現,所以它是完全公開化的。
定義抽象類:test03
package test3;
public abstract class test03
同乙個包下的實現test02:
package test3;
public class test02 extends test03
void test()
}
不同包下繼承抽象類後可以不提供實現,因為抽象類的訪問控制符為friendly,只是在同乙個包下才有作用範圍。
public class test01 extends test03
}
5. 抽象類中可以包含靜態方法,介面中不能包含靜態方法。
抽象類中可以提供具體的實現,所以只能提供實現了的靜態方法,這樣就可以被呼叫,而介面沒有實現方法的功能,而靜態方法又不能被覆蓋重寫,所以規定介面中不能有靜態方法。
6. 抽象類和介面中都可以包含靜態成員變數,抽象類中的靜態成員變數的訪問型別可以任意,但介面中定義的變數只能是public static final型別,並且預設即為public static final型別。
提到抽象方法,這裡還有必要說一下抽象方法,抽象方法無非就是加上abstract關鍵字,而沒有具體實現的方法,相當於宣告乙個方法。
java基礎 抽象類和介面
用abstract來修飾的類就稱為抽象類,用abstract來修飾的方法成為抽象方法,子類繼承抽象類的時候必須實現父類的抽象方法,抽象類可以沒有抽象方法,但是如果抽象類沒有抽象方法,或者沒有其他類繼承於它,那麼抽象類就失去了意義 當具體實現需要子類來完成的時候,就可以用抽象類。1 抽象方法必須是pu...
Java語言基礎 抽象類和介面
1.乙個類中的方法如果只有宣告沒有實現,則稱為抽象方法,必須用abstract修飾之 乙個有抽象方法的類稱為抽象類,也必須用abstract修飾之,但抽象類可以沒有抽象方法 抽象類不能被建立 抽象類 abstract class a 沒有抽象方法的抽象類 abstract class b publi...
Java 介面和抽象類
介面,inte ce,介面泛指供別人呼叫的方法和函式。介面的形式 public inte ce inte cename 介面的特點 1 介面中可以含有變數和方法。2 其中變數被隱式的指定為public static final 變數並且只能是這種變數。3 介面的方法隱式的指定為public abst...