1. 程式人生 > >JAVA:介面和抽象類的區別

JAVA:介面和抽象類的區別

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一個抽象類