接口:
接口是Java語言中一種引用類型,是方法的集合,如果說類的內部封裝了成員變量、構造方法和成員方法,那么
接口的內部主要就是封裝了方法,包含抽象方法(JDK 7及以前),默認方法和靜態方法(JDK 8),私有方法
(JDK 9)。
接口的定義:
它與定義類方式相似,但是使用 interface 關鍵字。它也會被編譯成.class文件,但一定要明確它并
不是類,而是另外一種引用數據類型,它是多個類的公共規范。它不能創建對象,但是可以被實現類實現其功能。
java中引用數據類型有:
數組,類,接口。
實現:
類與接口的關系為實現關系,即類實現接口,該類可以稱為接口的實現類,也可以稱為接口的子類。實現的動作類似繼承,格式相仿,只是關鍵字不同,實現使用 implements 關鍵字。
接口的多實現:
在繼承中,一個類只能繼承一個父類。而對于接口而言,一個類是可以實現多個接口的,這叫做接口的多實現。并且,一個類能繼承一個父類,同時實現多個接口,接口的多實現格式為:
class 類名
[extends 父類名
] implements 接口名
1,接口名
2,接口名
3... {
}
優先級的問題:
當一個類,既繼承一個父類,又實現若干個接口時,父類中的成員方法與接口中的默認方法重名,子類就近選擇執行父類的成員方法,父類優先于接口。
接口中抽象方法:
抽象方法:使用 abstract 關鍵字修飾,可以省略,沒有方法體,該方法供子類實現使用。
public interface InterFace{public abstract void say();
}
public class UseInterface implements InterFace{@Overridepublic void say(){System.out
.println("實現類中的say方法被調用了");};
}
public class UseInterfaceObj{public static void main(String[] args
){UseInterface interfaceObj1
= new UseInterface();interfaceObj1
.say();}
}
接口中默認方法:
默認方法:使用 default 關鍵字修飾,不可省略,供子類調用或者子類重寫。
public interface InterfaceDefault{public abstract void methodAbstract();public default void methodDefault(){System.out
.println("接口中默認發方法被調用了,但是實現類中并沒有定義此方法,默認方法是可以繼承的");};
}
public class UseInterfaceDefaultA implements InterfaceDefault{@Overridepublic void methodAbstract(){System.out
.println("實現類A:實現了抽象方法");}
}
public class UseInterfaceDefaultB implements InterfaceDefault{@Overridepublic void methodAbstract(){System.out
.println("實現類B:實現了抽象方法");}
@Overridepublic void methodDefault(){System.out
.println("接口中的默認方法被實現類覆蓋重寫了,并調用了重寫后的方法");}
}
public class UseInterfaceDefaultObj{public static void main(String[] args
){UseInterfaceDefaultA objA
= new UseInterfaceDefaultA(); objA
.methodAbstract();objA
.methodDefault();UseInterfaceDefaultB objB
= new UseInterfaceDefaultB(); objB
.methodAbstract();objB
.methodDefault();}
}
接口中靜態方法:
靜態方法:使用 static 關鍵字修飾,供接口直接調用。
public interface InterfaceStatic{public static void methodStatic(){System.out
.println("接口中的靜態方法執行了");}
}
public class InterfaceStaticClass implements InterfaceStatic{
}
public class InterfaceStaticClassObj{public static void main(String[] args
){InterfaceStaticClass interfaceStaticMethodObj
= new InterfaceStaticClass(); InterfaceStatic.methodStatic();}
}
接口中私有方法:
私有方法:使用 private 關鍵字修飾,供接口中的默認方法或者靜態方法調用。
public interface InterfacePrivateMethod{public default void method1(){System.out
.println("接口中方法1執行了");commonMethod();}public default void method2(){System.out
.println("接口中方法2執行了");commonMethod();}private void commonMethod(){System.out
.println("封裝了公共代碼的方法被執行了");}
}
public class InterfacePrivateMethodClass implements InterfacePrivateMethod{public void mes(){method2();}
};
public class InterfacePrivateMethodClassObj{public static void main(String[] args
){InterfacePrivateMethodClass InterPrivatMethod = new InterfacePrivateMethodClass();InterPrivatMethod.mes();}
}
接口中的常量:
接口中,無法定義成員變量,但是可以定義常量;接口中,沒有靜態代碼塊。
public interface InterfaceConst{public static final int NUM_SIX
= 6;
}
public class InterfaceConstObj{public static void main(String[] args
){System.out
.println(InterfaceConst.NUM_SIX
);}
}
提示:本文圖片等素材來源于網絡,若有侵權,請發郵件至郵箱:810665436@qq.com聯系筆者刪除。
筆者:苦海
總結
以上是生活随笔為你收集整理的Java接口、implements关键字、接口中抽象方法,默认方法,静态方法,私有方法,常量、final关键字的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。