Java學習第十一天

  1. 什麼是接口

接口是一種引用數據類型。使用interface聲明接口,形式java

public interface 接口名稱{編程

}spa

 

  1. 接口的特性

[1] 接口中能夠聲明屬性(C)。接口中定義的全部變量都是static final類型的。設計

public interface MyInterface {對象

    public static final String version = "1.0";繼承

    public int count = 10; // 默認是static final類型接口

}內存

 

通常不多在接口中聲明屬性。ci

 

[2] (C)接口中的方法都是公共抽象方法。io

public interface MyInterface {

     public abstract void showInfo();

     void showInfo3();

    

     // 推薦寫法

     public void showInfo2();

}

 

[3] (C)接口不能擁有構造方法,不能用於建立對象

 

[4] 接口能夠多繼承。一個接口能夠繼承多個其餘接口(B)

public interface CInterface extends AInterface, BInterface {

 

}

CInterface接口就具有了A、B接口中定義的抽象方法。

 

[5] (A) 一個類能夠實現一個或者多個接口,該類稱爲接口的實現類(implement class).

實現類必須實現接口中的全部(抽象)方法

總結:

實現類實現接口,必須實現接口中定義的抽象方法。

  • 方法即行爲,表示一種功能
  • 接口定義了一套功能,實現類必須實現這些功能 –> 實現類的能力獲得拓展。

 

  1. 接口的應用
    1. [1]接口表示一種能力(B)

接口中定義的一些系列方法表示的是一種種的能力。接口讓實現類實現這些能力,實現類的能力獲得拓展和升級。

實現類根據自身特性實現接口中定義的方法。

 

 

  1. [2]接口實現多態(B)

接口實現多態: 接口類型 引用 實現類對象

繼承實現多態: 父類類型 引用 子類對象

接口定義的方法被實現類實現,經過接口引用實現類時,調用接口中的方法時,執行的是實現類實現的方法。

 

實現類對象具有接口中定義的能力 是一種has a 關係

子類對象是一種父類類型 是一種is a 關係

 

 

  1. [3] 面向接口編程(A)

接口表示一種約定(協議),約定(規範)了實現類應該具有(has a)的能力。

 

理解:

=>實現類必須實現接口中全部的方法,因此接口規範了實現類的行爲

=> 接口約定了實現類應該具有的行爲。

 

面向接口編程

所謂面向接口編程,在程序設計時,只關心實現類具有什麼能力,而不關心實現類如何實現這個能力。面向接口編程時,面向接口的約定而不考慮接口的具體實現。

 

也就是說,面向接口編程時,接口的定義方只關係實現類是否具有接口所定義的能力,而實現類如何被的該能力接口定義方一點都不關心。

    1. 抽象類和接口的異同比較
  • 抽象類和接口都是引用數據類型,他們都不能建立對象。
  • 他們均可以定義抽象方法,均可以實現多態。可是抽象類能夠定義非抽象方法,而接口中定義的都是抽象方法。
  • 抽象類和接口都具備傳遞性。抽象類是單根性(單繼承),而接口是多繼承。
  • 在概念上,均可以重寫抽象方法。子類重寫抽象類,實現類實現接口
  • 抽象類和子類解決的是模塊內的問題(代碼重用,重寫,多態)而接口解決的是模塊間的問題 => 高內聚,低耦合。接口能夠用解耦模塊。
     
    1. Object

Object 類是全部類的根類。

若是一個類沒有顯示繼承另一個類,那麼該類必定繼承於Object。

equals(Object obj) 用於判斷兩個對象是否相等。

 

== 比較兩個對象的內存地址或基本數據類型的比較,object默認equals實現比較內存地址。

equals:用於比較兩個對象的內容(屬性)是否相等。

當自定義對象時,要比較自定義對象是否相等,就必須經過equals方法比較兩個對象屬性值是否相等,那就必須重寫Object的equals方法。

 

  1. 內部類

在java中,一個文件能夠定義多個類,文件名必須和public 類型的類的類名保持一致。這兩個類是平行關係。

 

在java中,一個類也能夠定義在一個類的內部,定義在內部的類稱爲內部類(inner class),定義在外部的類稱爲外部類(out class).

 

public class Outer {

    

     [修飾符] class Inner{

        

     }

}

 

  1. 成員內部類

一個內部類做爲一個外部類的成員而存在,此時該內部類稱爲外部類的成員內部類

相關文章
相關標籤/搜索