程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> java一個好玩的接口講解,java好玩接口講解

java一個好玩的接口講解,java好玩接口講解

編輯:JAVA綜合教程

java一個好玩的接口講解,java好玩接口講解


接口的作用對於很多新手來說很不容易理解,我給大家舉個例子。
接口只是一個規范,所以裡面的方法都是空的。
假如我開了一個寵物糧店,聲明所有寵物都可以來我這裡買糧食,這就相當於一個接口,

public interface PetRestaurant {
public void buy();
}

當一只狗看到了,知道自己是寵物,所以它去實現這個接口
public class DogPet implements PetRestaurant {
@Override
public void buy() {
System.out.println("我是狗,我要買狗糧");
}
}
當一只貓看到了,知道自己也是寵物,所以也去實現這個接口
public class CatPet implements PetRestaurant {
@Override
public void buy() {
System.out.println("我是貓,我要買貓糧");
}

}
當狗和貓來我的店之前,我是不知道他們到底是什麼,但是當他們來到我的店,我就知道一個要貓糧食,一個要狗糧食。因為他們都實現了 我這個接口,都可以買。下面這個類相當於一個接待顧客的類,即店小二,他接待所有實現了我這個寵物店接口的動物,傳進來一個PetRestaurant 類型的寵物,注意,這個PetRestaurant 是接口
public class test {
public void buy(PetRestaurant pet)
{
pet.buy();
}
}

好了,這個時候我這個老板出現了,我可以給他們賣糧食了,相當於測試類
public class Tests {
public static void main(String[] args) {
PetRestaurant dog = new DogPet(); //實例化一個狗,相當於把狗顧客實例化
PetRestaurant cat = new CatPet();//實例化一個貓,相當於把貓顧客實例化

test t = new test(); //實例化一個店小二
t.buy(cat); //把貓交給店小二
t.buy(dog); //把狗交給店小二
}

}
這樣運行的結果就是
我是貓,我要買貓糧
我是狗,我要買狗娘

你知道嗎,整個過程我這個店主其實根本不知道來的到底是貓是狗還是其他什麼,我只要有一個店小二,把這些來的不知什麼動物都全部交給店小二,店小二就知道怎麼去賣了,因為這些狗啊貓啊都實現了我這個寵物店的接口,而店小二就負責接待所有實現了我這個接口的動物。這就有一個好處,假如明天來了一頭小豬,只要它實現了我這個接口,我只管交給店小二處理就OK了,我這個店小二根本不需要變化,我這個店主也只需要實例化一下這個動物就OK
你想,假如沒有接口,會怎麼辦,來一個貓,我要去創造一個貓,還要實例化,來一只狗,我要創建一只狗,同樣要實例化,還要配備專門的店小二去接待,就會相當麻煩

作者:梅雲羅
鏈接:http://www.zhihu.com/question/20111251/answer/14760353
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved