介面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筆記
- 介面1原始碼分析原始碼
- 『居善地』介面測試 — 1、介面測試的概念
- [譯] part18: golang 介面 1Golang
- python+pytest介面自動化(1)-介面測試基礎Python
- Java集合原始碼學習(1)介面Java原始碼
- 三.介面自動化專案1
- 使用 swoole 加速 Larave Restful API 介面(1)RESTAPI
- 圖形使用者介面1:初識Walk
- Java後臺開發學習(1)——User介面Java
- java 1.基礎語言 23 介面5Java
- 華為consumeOwnedPurchase消耗介面返回-1錯誤碼
- Java-stream(1) Stream基本概念 & Stream介面Java
- visual studio 使用技巧 1:快速找到介面的實現類
- 手把手帶你擼一個路由(1)--介面跳轉路由
- 手把手帶你擼一個路由(1)–介面跳轉路由
- .NET Core CSharp初級篇 1-5 介面、列舉、抽象CSharp抽象
- 小白的學習筆記1:介面和多型,以及例子筆記多型
- [Python GUI]Python內建圖形介面tkinter--入門1PythonGUI
- 1.PHP微信公眾平臺開發(一) 配置介面PHP
- flutter實戰1:完成一個有側邊欄的主介面Flutter
- 編寫第一個GET、POST介面[renren-fast框架系列(1)]AST框架
- 介面卡模式(類介面卡,物件介面卡,介面介面卡)模式物件
- SmartSql使用教程(1)——初探,建立一個簡單的CURD介面服務SQL
- SpringMVC(1)- 入門案例、基本配置、請求、響應、Servlet相關介面SpringMVCServlet
- Lock介面之Condition介面
- API介面------外部介面和內部介面區別API
- java 介面,介面的特性,介面實現多型,面向介面程式設計Java多型程式設計
- 如何快速從 0 到 1 構建起一個公司的自動化介面
- [開發教程]第1講:Bootstrap使用者介面與互動架構boot架構
- Apifox(1)比postman更優秀的介面自動化測試平臺APIPostman
- 從0到1學習介面自動化測試必備知識!
- NB-IoT 與Cat1兩大協議成為主要的介面方式。協議
- 從零開始系列-Laravel編寫api服務介面:1.安裝LaravelLaravelAPI
- 類與介面(三)java中的介面與巢狀介面Java巢狀
- 『居善地』介面測試 — 2、介面和介面文件概念
- 介面卡模式(類介面卡 物件介面卡)模式物件
- 什麼是介面?如何定義介面?如何實現介面?