我可以拿一個例子來讓我/其他理解接口和類之間的差異爲java界面是analogus to java規範嗎?
Java接口是analogus到的Java規範(JMS API)的 的Java類是類似於實施(ActiveMQ的等)規範
我可以拿一個例子來讓我/其他理解接口和類之間的差異爲java界面是analogus to java規範嗎?
Java接口是analogus到的Java規範(JMS API)的 的Java類是類似於實施(ActiveMQ的等)規範
一個簡單的方法理解上的差異是認爲的接口定義對象做什麼,而一個類定義如何它它。
您建議的類比是不完整的,因爲Java有一個概念,它位於接口和類的中間,即抽象類:規範可能被建模爲抽象類或接口。
類和接口之間的區別是它們的運行方式。一個類有一個主要的方法。接口就像您可以將方法放入的全局文件。例如,你有類布拉赫
public class Blah {
// NOTICE: this is a method that allows you
// to perform actions within the method
public static void main(String args[]) {
// do whatever
}
}
,你有一個名爲BlahInterface
public interface BlahInterface {
public static void main(String args[]);
public void sayBlah();
public int getAmountOfBlahs();
public String getWhatBlahSays();
public int setBlahs(int blahNumber);
}
接口正如你所看到的,類和接口之間的區別在於,類依賴的接口上它可以實現的方法。
您可以看到該類允許main方法在其內部運行,但如果要嘗試在界面中運行main方法,則該方法無效。
摘要: 該接口僅用於初始化類可以使用/運行的方法。
希望這會有所幫助!
感謝您的回覆,請給出一個「規範可能被模擬爲java中的抽象類」的示例 –
@Naroji抽象類提供了* what *和a * how *的組合,因爲它具有方法沒有實現與接口中的相同方式,以及可能具有實現的方法,與它們在類中的方式相同。例如,JMS將'Message'指定爲接口,但它也可以將其指定爲抽象類:此類規範將爲公共屬性(如「ID」和「priority」)提供一個實現,從而省略「有效負載」方法由實現提供。 – dasblinkenlight