Java中介面相關知識
阿新 • • 發佈:2020-12-10
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.設計理念區別
抽象類 是對事物進行抽象,包括屬性和行為
介面 對行為抽象,主要是行為