一 介面和抽象類的相似性1 介面和抽象類都不能被實例化,它們都位於繼承樹的頂端,用於被其他類實現和繼承。2 介面和抽象類都可以包含抽象方法,實現介面或繼承抽象類的普通子類都必須實現這些抽象方法。 二 介面和抽象類的區別1 介面里只能包含抽象方法,靜態方法和預設方法,不能為抽象方法提供方法實現,抽象類 ...
一 介面和抽象類的相似性
1 介面和抽象類都不能被實例化,它們都位於繼承樹的頂端,用於被其他類實現和繼承。
2 介面和抽象類都可以包含抽象方法,實現介面或繼承抽象類的普通子類都必須實現這些抽象方法。
二 介面和抽象類的區別
1 介面里只能包含抽象方法,靜態方法和預設方法,不能為抽象方法提供方法實現,抽象類則完全可以包含普通方法。
2 介面里只能定義靜態常量,不能定義普通成員變數,抽象類里則既可以定義普通成員變數,也可以定義靜態常量。
3 介面不能包含構造器,抽象類可以包含構造器,抽象類里的構造器並不是用於創建對象,而是讓其子類調用這些構造器來完成屬於抽象類的初始化操作。
4 介面里不能包含初始化塊,但抽象類里完全可以包含初始化塊。
5 一個類最多只能有一個直接父類,包括抽象類,但一個類可以直接實現多個介面,通過實現多個介面可以彌補Java單繼承不足。