1. 程式人生 > 實用技巧 >Java中介面相關知識

Java中介面相關知識

1.介面

1.1介面概述

介面就是一種公共的規範標準,只要符合標準,大家都可以通用

Java中的介面更多的體現在對行為的抽象

1.2介面的特點

  • 介面用關鍵字interface修飾,格式:public interface 介面名{}
  • 類實現介面用implements表示,格式:public class 類名 implements 介面名{}
  • 介面不能例項化,介面例項化可以參照多型的方式,通過實現類物件來進行例項化,這也叫做介面多型。
  • 介面的實現類要麼重寫介面中的所有抽象方法,要麼是抽象類

多型的形式:

  • 具體類多型
  • 抽象類多型
  • 介面多型

多型的前提:有繼承關係或者實現關係;有方法重寫;有父類引用指向子類物件或者父介面引用指向子實現類物件。

介面:

package com.itheima_02;
//定義了一個介面
//介面用關鍵字interface修飾,格式:public interface 介面名{}
public interface Jumpping {
    public abstract void jump();
}

實現類1:

package com.itheima_02;
//類實現介面用implements表示,格式:public class 類名 implements 介面名{}
public class Cat implements Jumpping {
    @Override
    public void jump() {
        System.out.println("貓跳高");
    }
}

實現類2:

package com.itheima_02;

public abstract class Dog implements Jumpping {
//介面的實現類要麼重寫介面中的所有抽象方法,要麼是抽象類
}

測試類:

package com.itheima_02;

public class JumppingDemo {
    public static void main(String[] args) {
        //介面不能例項化,介面例項化可以參照多型的方式,通過實現類物件來進行例項化,這也叫做介面多型。
       // Jumpping j = new Jumpping();   錯誤
        Jumpping j = new Cat();     //採用多型的形式
        j.jump();
    }
}

1.3介面的成員特點

  • 成員變數:(只能是常量,預設用修飾符public static final進行修飾)
  • 構造方法:(介面中沒有構造方法,因為介面主要是對行為的抽象,是沒有具有存在的,一個類如果沒有父類,預設繼承自Object類)
  • 成員方法:只能是成員方法,預設用public abstract修飾

介面:

package com.itheima_03;
//介面
public interface Inter {
   /*
   /成員變數:(只能是常量,預設用修飾符public static final進行修飾)
   所以int num = 10;和public final int num = 10;是一樣的
    */
    public int num1 = 10;
    public final int num2 = 20;

    //public Inter(){}      報錯:介面中沒有構造方法,因為介面主要是對行為的抽象,是沒有具有存在的

    //public void show(){}      報錯:因為介面中的成員方法只能是抽象方法,預設用public abstract修飾

}

實現類:

package com.itheima_03;

public class InterImpl implements Inter {
    /*
介面中沒有構造方法,因為介面主要是對行為的抽象,是沒有具有存在的,一個類如果沒有父類,預設繼承自Object類
Object類是所有類的根,所有的類都直接或者間接的繼承自Object類
public class InterImpl implements Inter其實是public class InterImpl extends Object implements Inter的省略寫法
    /
     */

}

1.4類和介面的關係

  • 類和類的關係:繼承關係,只能單繼承,但是可以多層繼承
  • 類和介面的關係:實現關係,可以單實現也可以多實現,還可以在繼承一個類的同時實現多個介面
  • 介面和介面的關係:繼承關係,可以單繼承也可以多繼承

1.5抽象類和介面的區別

1.成員區別

​ 抽象類 變數,常量;有構造方法;有抽象方法也有非抽象方法

​ 介面 常量;抽象方法

2.關係區別

​ 類與類 繼承,單繼承

​ 類與介面 實現,單實現和多實現

​ 介面與介面 繼承,單繼承和多繼承

3.設計理念區別

​ 抽象類 是對事物進行抽象,包括屬性和行為

​ 介面 對行為抽象,主要是行為