第6篇 Java中的介面與抽象類別

來源:互聯網
上載者:User

標籤:多態   必須   div   聲明變數   rac   ble   list   通過   介面與抽象類別   

介面 Interface

在JAVA程式設計語言中是一個抽象類別型,是抽象方法的集合。介面通常以interface來聲明。一個類通過實現介面(implements)的方式,從而實現介面的抽象方法。

  • 介面通過interface關鍵字來定義
  • 介面中不能實現方法,但是能聲明方法
  • 類通過implements關鍵字來實現介面
  • 一個類如果實現了介面,就必須實現介面中的所有方法
  • 一個類可以通過implements關鍵字實現多個介面,但只能繼承一個父類
  • 面向介面的多態(介面的引用指向其實作類別)
  • 介面不能被執行個體化
  • 介面中的方法都是抽象方法
  • 介面中一般沒有屬性,有則必須被聲明為pulic static & final形式(不聲明編譯器自動化佈建為 public static final類型)
介面與類的區別
  • 介面不能執行個體化對象
  • 介面沒有構造方法
  • 介面中所有方法必須是抽象方法
  • 介面不能包含成員變數,除非是public static final變數
  • 介面不是被類繼承了,而是要被類實現
  • 介面支援多繼承(介面與介面之間只能是繼承extends的關係,可以多繼承)
抽象類別與介面的區別
  • 抽象類別中可以普通方法和抽象方法共存
  • 抽象類別中可以有各種類型的成員變數
  • 介面中不能含有靜態方法,抽象類別中可以有
  • 一個類只能繼承一個抽象類別,卻可以實現多個介面
介面的聲明

(想了想還是菜鳥教程的聲明寫的好看些)

[可見度] interface 介面名稱 [extends 其他的類名] {        // 聲明變數        // 抽象方法}
介面的實現

類在實現介面時必須實現介面的所有方法。

介面可以實現多態的功能。

樣本
interface USB{    public void connect();}//滑鼠類實現USB介面class Mouses implements USB{    @Override    public void connect() {        System.out.println("滑鼠串連USB");    }}//鍵盤類實現USB介面class KeyBoard implements USB{    @Override    public void connect() {        System.out.println("鍵盤串連USB");    }}

我們可以通過下面的方法來實現不同對象對介面的實現:

public static void useUSB(USB usb) {    usb.connect();}public static void main(String[] args) {    Mouses mouses = new Mouses();    KeyBoard keyBoard = new KeyBoard();    useUSB(mouses);    useUSB(keyBoard);}

通過給useUSB方法來傳入不同的USB介面對象,從而達到多態的效果。最後列印結果如下:

滑鼠串連USB鍵盤串連USB
介面的繼承

這裡由於老師上課並沒有重點提,不過在後面集合一章就是很明顯的例子。

迭代器介面:

public interface Iterable<T> {    /**     * 迭代器的一些方法     */

  ......
}

Collection 介面:

public interface Collection<E> extends Iterable<E> {     /**     * Collection 的一些方法     */  ......}

List 介面:

public interface List<E> extends Collection<E> {    /**     * List 的一些方法     */  ......}
介面的多繼承

介面的繼承與類的繼承一點很大的區別就在於介面可以多繼承,多繼承的方式與類實現多個介面的形式類似:

public interface Hockey extends Sports, Event
Java 抽象類別(面試)

用·abstract修飾的類叫做抽象類別

抽象類別的一些特點
  • 抽象類別不能被執行個體化,只能執行個體化抽象類別的子類。
  • 抽象類別不一定包含抽象方法,但包含抽象方法的類一定是抽象類別
  • 構造方法不能被聲明成抽象方法
  • 子類必須父抽象類別的所有抽象方法,除非子類也是抽象類別
  • 用abstract修飾的方法稱之為抽象方法,抽象方法只有方法聲明,沒有方法體
  • 抽象類別中的方法可以是抽象方法,也可以是普通方法
  • 沒有抽象的屬性,屬性不能被abstract修飾

第6篇 Java中的介面與抽象類別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.