JAVA:介面和抽象類的區別
阿新 • • 發佈:2018-11-11
1.從設計層面來說,抽象是對類的抽象,是一種模板設計 ,介面是行為的抽象,是一種行為的規範
介面 interface |
抽象類 |
介面中所有方法都是抽象的 | 抽象類中可以有抽象方法和普通方法 |
一個類可以實現多個介面 | 一個類只能繼承一個抽象類 |
介面中成員變數預設public static final型別的(都可以 省略),必須被顯示 初始化,即介面中的成員變數為常量(大寫) int CONST=1;//合法,CONST預設為public static final |
抽象類可以包含非final變數 |
介面中成員函式預設public abstract型別 void method();//合法,method()預設為public abstract public abstract void method2();//method2()顯示宣告public abstract型別 |
抽象類成員函式可以private,protected,public |
Java介面中只能包含public,static,final型別的成員變數和public,abstract型別的 成員方法
|
|
介面絕對抽象,不可以被例項化 | 抽象類也不可以例項化 |
沒有構造器 | 可以 有構造器 |
子類必須實現所有介面函式 | 可以有main方法 |
可以有main方法;可以new一個介面,需要在方法體中實現所有介面函式 | 不可以new一個抽象類 |