java學習 介面

2021-07-23 19:03:48 字數 1714 閱讀 3071

介面和抽象類的區別

動物類要有呼吸方法。怎麼呼吸就是子類的事了。

現在有很多討論和建議提倡用inte***ce代替abstract類,兩者從理論上可以做一般性的混用,但是在實際應用中,他們還是有一定區別的。抽象類一般作為公共的父類為子類的擴充套件提供基礎,這裡的擴充套件包括屬性上和行為上的。而介面一般來說不考慮屬性,只考慮方法,使得子類可以自由的填補或者擴充套件介面所定義的方法,。

用乙個簡單的例子,比如說乙個教師,我們把它作為乙個抽象類,有自己的屬性,比如說年齡,教育程度,教師編號等等,而教師也是分很多種類的,我們就可以繼承教師類而擴充套件特有的種類屬性,而普遍屬性已經直接繼承了下來。

而介面呢~還是拿教師做例子,教師的行為很多,除了和普通人相同的以外,還有職業相關的行為,比如改考卷,講課等等,我們把這些行為定義成無body的方法,作為乙個集合,它是乙個inte***ce。而教師張三李四的各自行為特點又有不同,那麼他們就可以擴充套件自己的行為body。從這點意義上來說, inte***ce偏重於行為。

總之,在許多情況下,介面確實可以代替抽象類,如果你不需要刻意表達屬性上的繼承的話。

乙個類可以有多個介面但是只能夠繼承乙個類

介面:主要用來描述類具有什麼功能,而並不給出每個功能的具體實現

------------------------------例子-----------------------------------

arrays類中的sort方法承諾可以對物件陣列進行排序,但是要求實現comparable介面

publicinte***cecomparable

int compareto(object other);

為了讓類實現乙個介面需要如下步驟:

1)將類宣告為實現給定的介面

2)對介面中所有方法進行定義

class employee implements comparable

關於介面的特性

介面不是類,尤其不能使用new運算子例項化乙個介面

x = new comparable(...);//error

但是我們可以宣告介面的變數

comparable x;//變數必須引用實現了介面的類物件

x = new employee(..); 

實現多個介面的語句

class employee implements cloneable,comparable

關於介面的應用:

如果乙個物件需要轉殖

(1)實現cloneable介面

(2)使用public訪問修飾符重新定義clone方法

comparable和comparator的區別:

關於乙個類實現介面的例子:

class event implements comparable

@override

public string tostring()

public int compareto(event o)

}

JAVA學習 介面

通過一天的學習,做乙個對於介面的簡單總結。介面,這裡所提到的介面實際上是一種規範,也可理解為準則,基本要求。首先,介面是一種特殊的抽象類,裡面只包含基本屬性引數,抽象方法,內部類和列舉類。並不包含具體的實現過程。它需要其他想要使用該介面的類,根據自己的實際情況對介面內的方法等進行詳細說明。在介面中,...

java學習之介面

inte ce 成員常量 public static final 成員函式 public abstract介面是不可以建立物件的,因為有抽象方法。子類對介面中的抽象方法全部實現後,子類才能夠例項化,否者子類是乙個抽象類。介面是對外暴露的規則 介面是程式的功能擴充套件 介面可以用來多實現 類與介面之間...

Java學習 Map介面

map集合 一次新增一對元素 collection一次新增乙個元素 map也稱為雙列集合 collection集合也被稱為單列集合 map集合儲存的是鍵值對 並且必須保證鍵的唯一性 常用方法 1,新增 value put key,value 返回和前乙個key關聯的值,如果沒有則返回null 比如 ...