一,java介面 二,介面與類的區別 三,介面特性 不能使用new運算符實例化一個介面 //錯誤的 x = new Comparable(.....); //Comparable是一個介面 介面內能聲明變數 可以使用instanceof檢查一個對象是否屬於某個特定類 介面可擴展 介面不能包含實例域或 ...
一,java介面
- 介面不是類,而是對類一組需求描述,這些類要遵從介面描述的統一格式進行定義
- 介面(interface),在JAVA編程語言中是一個抽象類型,是抽象方法的集合,介面通常以interface來聲明。一個類通過繼承介面的方式,從而來繼承介面的抽象方法。
- 介面包含類要實現的方法,類描述對象的屬性和方法。
- 除非實現介面的類是抽象類,否則該類要定義介面中所有的方法
二,介面與類的區別
- 介面不能實例化對象,但是可以被實現。。
- 介面沒有構造方法。
- 介面內所有方法必須是抽象方法。
- 介面不是被類繼承,是被類實現。
- 介面支持多繼承,類不能。
三,介面特性
- 不能使用new運算符實例化一個介面
//錯誤的 x = new Comparable(.....); //Comparable是一個介面
- 介面內能聲明變數
Comparable a; //介面變數必須引用實現了介面的類對象,或者就是一個空指針 a = new Employee(.....);
- 可以使用instanceof檢查一個對象是否屬於某個特定類
//測試左邊的對象是否是右邊類的實例 if(anObject instanceof Comparable)
- 介面可擴展
public interface Moveable { void move(double x,double y); } //擴展一個叫做Powered的介面 public interface Powered extends Moveable { double milesPerGallon(); }
- 介面不能包含實例域或靜態方法,但是可以包含常量(java8可以加靜態方法了,但是這有違將介面作為抽象規範的初衷)
//介面中的方法自動的被設置為public abstract //介面中的變數都自動設為public static final public interface Powered extends Moveable { double milesPerGallon(); //等價於 public abstract double milesPerGallon(); double num = 16.6; //等價於 public static final double num = 16.6;
}