想要了解介面我們要先知道抽象類別。那什麼是抽象類別呢?
問題描述:生活中我們有很多的物件是無法具體描述的,比如說:我們可以說四邊形有四條邊。或者俱體點說就是矩形兩邊對稱且相等,正方形四邊對稱且相等。但是對於普通的圖形而言就很難具體描述了。轉換成Java語言就是說:對於一個很具體的類別我們可以很方便的定義它的各種屬性和方法,但是對於有一些類別我們卻難以了解它的方法時如何實現的。這時我們就可以用到抽象類別。
抽象類別的語法格式如下:
1 public abstract class 类名{2 abstract 返回值类型 方法名(参数列表);//定义抽象方法 3 }
定義抽象方法的關鍵字是:abstract。
使用abstract定義的類別稱為抽象類,而使用abstract定義的方法稱為抽象方法。
抽象方法沒有方法體,本身也沒有任何意義,因此抽象類別是不能夠被實例化的。
當它被其子類別繼承時,子類別必須實作其中的抽象所有方法。
只要類別中有一個抽象放方法,此類就必須定義為抽象類別。
了解了抽象類,我們繼續思考下面的問題,來看先下面一段程式碼:
##public abstract class shape {//定义一个图形抽象类public abstract void toString();//toString抽象方法public abstract void paint();//画图的抽象方法}public class triangle extends shape {public void toString() { system.out.println("toString"); }public void paint() { system.out.println("paint"); } }
這樣看起來好像沒什麼問題。如果我們有些類別中不希望它有paint方法怎麼辦?把paint方法放到另一個類別?但是其它的類別還要使用這個方法。而Java的語法規定了,類別是不能多繼承的,怎麼辦?這時我們就可以考慮使用介面了。
介面是抽象類別的延伸,解決了Java中不能多繼承的缺點。我們可以把paint方法封裝到一個介面中,然後讓需要用的圖形類別的子類別實作這個介面。而Java中一個類別是可以實作多個介面的,我們可以把不同的方法封裝在介面中,交給類別來使用。
介面的關鍵字是interface。其定義如下:
public interface 接口名 extends 类名 implements 接口,....{ //定义常量 public static final 数据类型 常量名=值; //定义抽象方法 public abstract 返回值类型 方法名 (参数列表); }
要注意的是:1.介面不能被實例化 2.介面的存取修飾符只能是public 3.介面會預設提供public abstract static final關鍵字
以上是Java中什麼是抽象類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!