[問題] 初學interface 環境JDK8 eclipseSE

作者: BUQ (固執又暴燥)   2020-06-07 15:48:50
目前 初學interface
參考網站為
https://reurl.cc/MvGnWK
我按照教學打 但編譯不過 有錯誤
羅輯上 我是看不出來有什麼問題
沒有什麼頭緒 可能是因為才正在學
其中最下面店員的類 其中的方法 我的IDE叫我要宣告無回傳void 這是必要的嗎
有人可以引導一下嗎
小弟無意當個伸手黨 給個關鍵字也好 我可以自己拜google
先感謝 各路大神..<(_ _)>
public class Interface_test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Clerk C = new Clerk(); //實例店員
PetDog dog = new PetDog(); //實例狗
PetCat cat = new PetCat(); //實例貓
C.sellFood(dog); //我是狗,我要買狗糧,汪汪!!
C.sellFood(cat); //我是貓,我要買貓糧,喵喵!!
}
public interface PetRestaurant{
public void buyFood();
}
//寵物狗想要買狗糧
public class PetDog implements PetRestaurant{
@Override //實現接口方法
public void buyFood(){
System.out.println("我是狗,我要買狗糧,汪汪!!");
}
}
//寵物貓想要買貓糧
public class PetCat implements PetRestaurant{
@Override
public void buyFood(){
System.out.println("我是貓,我要買貓糧,喵喵!!");
}
}
public class Clerk{ //店員
public sellFood(PetRestaurant pet){ //店員賣食物給實踐過的寵物
pet.buyFood(); //寵物買糧食
}
}
}
作者: vavamos (vavamos)   2020-06-07 16:14:00
類都寫到Interface_test裡面了 需先new外部類 不然就拆開
作者: BUQ (固執又暴燥)   2020-06-07 17:51:00
把類全搬出來嗎 好的 我試試我把class 全搬出來 去掉public 編譯就過了 謝謝public void sellFood(PetRestaurant pet){(PetRestaurant pet)《=這裡面 我實在無法理解 其中的意思為何可以塞一個介面名稱 後面還補了一個沒被定義過的 pet有關鍵字嗎 我可以自己啃文章
作者: evo1994 (Evo)   2020-06-08 01:19:00
代表要傳進去sellFood這個方法的參數 是這個型別 pet只是你自己幫他命名這其實蠻基本的 建議你先看過一點java的書再來學interface的概念會比較好另外不用怕伸手黨 我覺得你問題描述的很清楚 也有把不懂的地方講出來
作者: swallowcc (guest)   2020-06-08 09:19:00
不要讓板眾通靈就好,另外小建議是程式碼不要打在這裡在 AndroidDev 板置底有列出可以打在網站上的,閱讀上會比較方便一點
作者: BUQ (固執又暴燥)   2020-06-08 11:29:00
好喔Y

Links booklink

Contact Us: admin [ a t ] ucptt.com