1. 程式人生 > >介面與繼承詳解

介面與繼承詳解

介面繼承是出自設計模式中的一個概念。介面繼承,又稱子型別化。描述了一個物件什麼時候能夠被用來替代另一個物件。

1、介面概念

介面的基本概念

介面可以多繼承介面 ,是因為介面只定義行為,並不包含類別的含義,不指代具體的某類事物, 而且, 從語義上來說 ,介面對介面的繼承稱之為擴充套件更為合適。

Java中的介面是一系列方法的宣告,是一些方法特徵的集合,一個介面只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。

2、什麼是介面

介面的兩種含義:

一,Java介面Java語言中存在的結構,有特定的語法和結構;

二,一個類所具有的方法的特徵集合,是一種邏輯上的抽象。前者叫做“Java介面”,後者叫做“介面”。

[訪問修飾符] interface 介面名{

    [訪問修飾符]欄位;

    [訪問修飾符]方法;

}

例如:

    public interface fruit { //建立一個名為fruit的介面

        String a = "123"; //在介面中定義欄位

        double PI = 3.14;

        float saleFruit(); //在方法中定義方法saleFruit()

        float buyFruit();

    }

    public interface fruit1 { //建立一個名為fruit1的介面

        float saleFruit(); //在方法中定義方法saleFruit1()

    }

3、介面使用

class testInterface implements fruit, fruit1 {

    public float buyFruit() {

        //此處是方法的實現

        return 0;

    }

    public float saleFruit() {

        //此處是方法的實現

        return 0;

    }

    public float saleFruit1() {

        //此處是方法的實現

        return 0;

    }
}
package com.liuxd;

/**
 * Created by Liuxd on 2018/10/31.
 */
public abstract class testInterface implements fruit {

    public float buyFruit() {

        return 0;

    }

}

JAVA的核心概念:介面(interface)

  1、介面與類屬於同一層次,實際上,介面是一種特殊的抽象類

interface IA{

}


  public interface:公開介面


  2、與類相似,一個檔案只能有一個public介面,且與檔名相同。

  在一個檔案中不可同時定義一個public介面和一個public類。

 

        3、一個介面中,所有方法為公開、抽象方法;所有的屬性都是公開、靜態、常量。

        一個類實現一個介面的格式:
 

 class IAImple implements IA{
 };

        4、一個類實現介面,相當於它繼承一個抽象類

        類必須實現介面中的方法,否則其為一抽象類。實現中介面和類相同。

       5、介面中可不寫public,但在子類中實現介面的過程中public不可省。

  (如果剩去public則在編譯的時候提示出錯:物件無法從介面中實現方法。)


  6、一個類除繼承另外一個類,還可以實現介面;簡言之:單繼承多實現。  

class IAImpl extends java.util.Arrylist implement IA{
}

  繼承類 實現介面
  這樣可以實現變相的多繼承

  一個類只能繼承另外一個類,但是它可以繼承多個介面,中間用“,”隔開。

  Implements IA,IB

  7、所謂實現一個介面,就是指實現介面中的方法。

  介面和介面之間可以定義繼承關係,並且介面之間允許實現多繼承。

  例:interface IC extends IA,IB{};

  介面也可以用於定義物件

  IA I=new IAImpl();

  8、實現的類從父類和介面繼承的都可做執行時型別

  IAImple extends A implement IA,IB

  IB I=new IAImple();

  I instance of IAImple;

  I instance of A;

  I instance of IA;

  I instance of IB;

  返回的結果均為true.

介面和多型都為JAVA技術的核心。

       介面往往被我們定義成一類XX的東西。

  介面實際上是定義一個規範、標準。

       通過介面可以實現不同層次、不同體系物件的共同屬性;

  通過介面實現write once as anywhere。

  以JAVA資料庫連線為例子:JDBC制定標準;資料廠商實現標準;使用者使用標準。

  介面通常用來遮蔽底層的差異。

  因此介面也因為上述原因被用來保持架構的穩定性。