在JDK8中,接口也可以定義靜態方法,可以直接用接口名調用。實現類和實現是不可以調用的。如果同時實現
兩個接口,接口中定義了一樣的默認方法,必須重寫,不然會報錯。
接口和抽象類的區別是什么
1. 接口的方法默認是 public,所有方法在接口中不能有實現(Java 8 開始接口方法可以有默認實現),抽象類可以
有非抽象的方法
2. 接口中的實例變量默認是 fifinal 類型的,而抽象類中則不一定
3. 一個類可以實現多個接口,但最多只能實現一個抽象類
4. 一個類實現接口的話要實現接口的所有方法,而抽象類不一定
5. 接口不能用 new 實例化,但可以聲明,但是必須引用一個實現該接口的對象 從設計層面來說,抽象是對類的抽
象,是一種模板設計,接口是行為的抽象,是一種行為的規范。
/**
* jdk1.8 接口測試
*/
public interface InterTest {
/**定義一個抽象方法*/
public abstract void fun();
* jdk1.8 接口測試
*/
public interface InterTest {
/**定義一個抽象方法*/
public abstract void fun();
/**接口寫main方法*/
public static void main(String[] args) {
InterTest i=new interfaceImpl ();
i.test();
}
/**定一個默認實現方法-子類可以不覆蓋重寫*/
default void test() {
System.out.println("hello world");
fun();
}
}
子類
class interfaceImpl implements Intert{
@Override
public void fun() {
System.out.println("實現接口中的抽象方法");
}
}
default void test() {
System.out.println("hello world");
fun();
}
}
子類
class interfaceImpl implements Intert{
@Override
public void fun() {
System.out.println("實現接口中的抽象方法");
}
}