java接口的作用和意義 java什么是接口回調

前言接口是Java中的一個重要的類型,實際項目開發中會大量使用到接口,也稱為:面向接口編程,本章將詳細介紹接口的概念和使用以及內部類 。
接口接口是什么生活中的接口如電腦上的USB接口,規范了接口的形狀、尺寸等,只要符合該規范的設備就可以連接上去 。

java接口的作用和意義 java什么是接口回調

文章插圖
程序中的接口是一套規范,規定了方法的定義,只要是實現了該接口的類必須按照接口的規范來定義 。
使用接口定義接口的語法:
public interface 接口名{靜態常量的定義;方法的定義;}定義接口要注意:
  1. 方法是abstract的,不能實現
  2. 定義的屬性會自動轉變為靜態常量
  3. 方法只能是public的,默認是public
實現接口
public class 類名 implements 接口名{具體方法的實現}實現接口要注意:
  1. 必須實現所有接口中的方法
  2. 方法必須和接口中定義的完全一致
  3. 方法必須是public的
  4. 一個類可以實現多個接口
  5. 一個類可以繼承類同時實現接口
class 類名 extends 父類 implements 接口{}
  1. 接口可以繼承接口,實現類必須實現所有的方法
interface A{void testA();}//接口之間的繼承interface B extends A{void testB();}class C implements B{public void testA() {}public void testB() {}}接口在開發中的意義
  1. 為類的實現制定一套規范
  2. 把設計和實現分開
default關鍵字Java1.8的新特性,被default定義的方法可以有默認的實現 。
public interface Person {//給接口方法默認的實現default void eat(){System.out.println("在吃飯!!");}void walk();}實現類不強制要求實現帶default的方法 。
接口與抽象類的異同接口和抽象類的區別是常見的面試題相同點:
  1. 都可能存在沒有實現的方法
  2. 都不能實例化
【java接口的作用和意義 java什么是接口回調】不同點:
  1. 抽象類是單一繼承,類可以實現多個接口
  2. 接口不能定義構造方法
  3. 接口中的方法只能是public,抽象類可以有各種訪問類型的方法 。
  4. 接口中只能定義靜態常量,抽象類可以定義普通的成員變量 。
  5. 接口中的抽象方法不用加abstract,抽象類必須加 。
內部類內部類就是在類里面定義的類 。Java的內部類包含:
  • 成員內部類
  • 靜態內部類
  • 局部內部類
  • 匿名內部類
成員內部類和成員變量(屬性)、成員方法同級的,都是屬于某一個對象所有的 。語法:
class 外部類{class 內部類{...}}特點:
  • 一般只在外部類的里面使用
  • 成員內部類和類的屬性和方法同一級別 。
  • 屬于類的對象,在創建每個對象時加載到內存
靜態內部類成員內部類加上static,就是靜態內部類語法:
public class 外部類{static class 內部類{}}和成員內部類的區別:
  1. 成員內部類屬于對象,靜態內部類屬于外部類
  2. 成員內部類每創建一個對象加載一次,靜態內部類和外部類一起加載
  3. 成員內部類能訪問外部類的所有成員,靜態內部類只能訪問外部類靜態的成員
局部內部類在方法中定義的類,只能在當前方法中使用,方法調用時加載類到內存中 。語法:
class 外部類{public void test(){class 內部類{}內部類 對象 = new 內部類();}}匿名內部類一個沒有名字的內部類,創建類的同時創建了對象 。應用場合:接口或抽象類的實現類只需要使用一次,代碼是一次性的 。語法:
new 接口/抽象類(){實現方法};實現USB案例
//Usb接口interface Usb{void connect(); //連接void charge(); //充電}//匿名內部類實現接口Usb usb = new Usb(){public void connect(){System.out.println("Test2測試連接");}public void charge(){System.out.println("Test2測試充電");}};usb .connect();usb .charge();和一般類的區別:
  1. 沒有名字
  2. 只能使用一次
  3. 沒有構造方法
  4. 不能定義靜態成員
面試題:在?處填寫什么可以在控制臺輸出30,20,10 。
class Outer { public int num = 10;class Inner {public int num = 20;public void show() {int num = 30;System.out.println(?);numSystem.out.println(?);this.numSystem.out.println(?);Outer.this.num}} } class InnerClassTest {public static void main(String[] args) {Outer.Inner oi = new Outer().new Inner();oi.show();}}結束留兩個作業:
  1. 定義播放器接口,播放音樂方法;定義游戲機接口,玩游戲方法;定義電話類,有品牌和價格屬性,和打電話方法定義手機類繼承電話并實現播放器和游戲機接口
  2. 定義算術接口,分別定義加減乘除四個方法,每個方法都有兩個double參數,返回值為double 。使用常規類和匿名內部類兩種方式實現接口 。

    推薦閱讀