標籤:預設 return ati log 產生 成員 extend bst 運算子
介面(interface)可以想想為一個純的抽象類別。他允許建立者規定一個類的基本形式:方法名,自編量表,以及傳回型別,但是不規定方法體。介面也包含資料成員,但是他們都預設為static和final。即介面只提供細節,不提供實現細節。介面中所有方法都是抽象的,這些抽象方法通過實現這一介面的不同類來完成,使用過程中,介面類變數可以表示任何實現該介面類的對象,這可以大限度的實現動態綁定,隱藏實現細節。
介面文法使用interface關鍵字聲明,只聲明類方法原型,不定義直接的方法類容,格式如下:
[介面修飾符] interface 介面名稱 [<Type>] [extends 父類名]{
....//方法原型
}
值得注意的是,在介面聲明中,java允許省略聲明資料成員的final關鍵字,方法的public以及abstract關鍵字。如下:
interface Shape2D{final double pi = 3.14;public abstract double area();}
可以直接省略關鍵字:
interface Shape2D{double pi = 3.14;double area();}
介面實現,介面自然不能象一般類一樣使用new運算子可以產生對象。利用介面構造類的過程叫做介面實現。實現介面需要implements關鍵字,文法如下:
[類修飾符] class 類名 implements 介面名稱{
...//實現interface的方法
}
下面例子實現Shape2D。
import static java.lang.Math.*;interface Shape2D{final double pi = 3.14;public abstract double area();}class Circle implements Shape2D{private double radius ;public Circle(double r){radius = r;}public double area(){return pi*radius*radius;}}class Rectangle implements Shape2D{private double width;private double length;public Rectangle(double w,double l){width = w;length = l;}public double area(){return width*length;}} public class Test{public static void main(String [] args){Shape2D circle = new Circle(2.0);Shape2D rectangle = new Rectangle(3.0, 5.0);System.out.println(circle.area());System.out.println(rectangle.area());}}
java中的介面