介面1
package demo20201018介面;
/*
介面就是多個類的公共規範
介面是一種引用型別,最重要的內容就是其中:抽象方法
如何定義一個介面的格式:
public interface 介面名稱{
//介面內容
}
備註
Java7
1.常量
2.抽象方法
Java8
3.預設方法
4.靜態方法
Java9
5.私有方法
介面的使用步驟
1.介面不能直接使用,必須有一個“實現類”來“實現”該介面
格式
public class 實現類名稱 imolements 介面名稱{
//。。。。。。。。
}
2.介面的實現類必須覆蓋重寫(實現)介面中的所有抽象方法
實現:去掉abstract關鍵字,加上方法體大括號
3.建立實現類的物件,進行使用
注意事項:
如果實現類並沒有覆蓋重寫介面中所有的抽象方法,那麼這個實現類自己就必須是抽象類
*/
public class demoInterface01 {
public static void main(String[] args) {
MyInterfaceAbstractImp m = new MyInterfaceAbstractImp();
m.method1();
}
}
package demo20201018介面;
/*
1.介面預設方法,可以通過介面實現類物件,直接呼叫
2.介面預設方法,可以被介面實現類進行覆蓋重寫
*/
public class demoInterface02 {
public static void main(String[] args) {
//建立了實現類物件
MyInterfaceDefaultA a = new MyInterfaceDefaultA();
a.methodAbs();//呼叫抽象方法,實際執行的是右側實現類 實現了抽象方法AAA
//呼叫預設方法,如果實現類中沒有,會向上找介面
a.methodDefault();//新新增的預設方法
MyInterfaceDefaultB b = new MyInterfaceDefaultB();
b.methodAbs();//實現了抽象方法BBB
b.methodDefault();//實現了B覆蓋重寫介面的預設方法
}
}
package demo20201018介面;
/*
在任何版本中的Java中,介面都能定義抽象方法
格式:
public abstract 返回值型別 方法名稱(引數列表);
注意事項:
1.介面當中的抽象方法,修飾符必須是兩個固定的關鍵字:public abstract
2.這兩個關鍵字修飾符,可以選擇性省略
3,方法三要素,可以隨便定義
*/
public interface MyInterfaceAbstract {
/*public default void we(){
System.out.println(666);
} */
public abstract void method1();
}
package demo20201018介面;
public class MyInterfaceAbstractImp implements MyInterfaceAbstract {
@Override
public void method1() {
System.out.println("方法一");
}
}
package demo20201018介面;
/*
從Java8開始:介面裡允許定義預設方法
格式:
public default 返回值型別 方法名稱(引數列表){
方法體
}
備註:介面當中的預設方法,可以解決介面升級問題
*/
public interface MyInterfaceDefault {
//抽象方法
public abstract void methodAbs();
//新新增了一個抽象方法
//public abstract void methodAbs2();
public default void methodDefault(){
System.out.println("新新增的預設方法");
}
}
package demo20201018介面;
public class MyInterfaceDefaultA implements MyInterfaceDefault {
@Override
public void methodAbs() {
System.out.println("實現了抽象方法AAA");
}
}
package demo20201018介面;
public class MyInterfaceDefaultB implements MyInterfaceDefault {
@Override
public void methodAbs() {
System.out.println("實現了抽象方法BBB");
}
@Override
public void methodDefault() {
System.out.println("實現了B覆蓋重寫介面的預設方法");
}
}
相關文章
- chatgpt介面開發筆記1:completions介面ChatGPT筆記
- MATLAB(1) 介面介紹Matlab
- 『居善地』介面測試 — 1、介面測試的概念
- [譯] part18: golang 介面 1Golang
- Java集合原始碼學習(1)介面Java原始碼
- 使用 swoole 加速 Larave Restful API 介面(1)RESTAPI
- JDBC介面技術介紹1 (轉)JDBC
- 三.介面自動化專案1
- python+pytest介面自動化(1)-介面測試基礎Python
- node下的微信之路-1:介面資訊配置
- Flash8教程1:認識工作介面
- 圖形使用者介面1:初識Walk
- Java後臺開發學習(1)——User介面Java
- java 1.基礎語言 23 介面5Java
- Java-stream(1) Stream基本概念 & Stream介面Java
- 華為consumeOwnedPurchase消耗介面返回-1錯誤碼
- 突破整數介面:分數1/2~3/4
- 突破整數介面:分數1/2~4/5(A)
- Android 介面(1):UI 開發控制元件AndroidUI控制元件
- 怎樣設計合適的介面(1) (轉)
- 突破整數介面:分數1/2~4/5(B)
- 突破整數介面:分數1/2~4/5(C)
- 突破整數介面:分數1/2~4/5(D)
- 突破整數介面:分數1/2~4/5(E)
- 突破整數介面:分數1/2~4/5(F)
- 突破整數介面:分數1/2~4/5(G)
- 突破整數介面:分數1/2~4/5(H)
- 突破整數介面:分數1/2~4/5(I)
- 突破整數介面:分數1/2~4/5(J)
- android簡單的登入介面的實現1Android
- com學習筆記(1)基礎介面的定義筆記
- 1.PHP微信公眾平臺開發(一) 配置介面PHP
- 手把手帶你擼一個路由(1)–介面跳轉路由
- 手把手帶你擼一個路由(1)--介面跳轉路由
- 從二維介面到虛擬現實(1) – 初識VRVR
- .Net程式設計師安卓學習之路1:登陸介面程式設計師安卓
- .NET Core CSharp初級篇 1-5 介面、列舉、抽象CSharp抽象
- 編寫第一個GET、POST介面[renren-fast框架系列(1)]AST框架