介面抽象類簡要總結
阿新 • • 發佈:2019-01-04
抽象類和介面區別(1.8版本後)
介面 |
抽象類 |
|
實現方式 |
多重實現 |
只能單繼承 |
構造方法 |
無 |
可以有構造方法 |
方法 |
原來只能有抽象方法,1.8後可以有靜態方法和 default方法(用default關鍵字修飾的方法),也就是介面中可以有實現方法 |
可以有預設方法的實現。可以有main方法 |
屬性 |
public static final |
各種修飾符均可 |
public class Main { public static void main(String[] args) { JDK8Interface.staticMethod(); // static方法必須通過介面類呼叫 new JDK8InterfaceImpl().defaultMethod(); //default方法必須通過實現類的物件呼叫 } } public class JDK8InterfaceImpl implements JDK8Interface { //實現介面後,因為預設方法不是抽象方法,所以可以不重寫,但是如果開發需要,也可以重寫 } public interface jiekou { public default int fun() { System.out.print("我是預設方法,子類可以不重寫"); } public static int fun2() { System.out.print("我是靜態方法,子類可以不重寫"); } public abstract int fun3();//抽象的方法,子類要有具體實現,不能有方法體 }