java 接口(interface)的意義

接口的做用對於不少新手來講很不容易理解,我給你們舉個例子。
接口只是一個規範,因此裏面的方法都是空的。
假如我開了一個寵物糧店,聲明全部寵物均可以來我這裏買糧食,這就至關於一個接口,

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
你想,假如沒有接口,會怎麼辦,來一個貓,我要去創造一個貓,還要實例化,來一隻狗,我要建立一隻狗,一樣要實例化,還要配備專門的店小二去接待,就會至關麻煩
相關文章
相關標籤/搜索