作者: 
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的概念會比較好另外不用怕伸手黨 我覺得你問題描述的很清楚 也有把不懂的地方講出來
不要讓板眾通靈就好,另外小建議是程式碼不要打在這裡在 AndroidDev 板置底有列出可以打在網站上的,閱讀上會比較方便一點
作者: 
BUQ (固執又暴燥)   
2020-06-08 11:29:00好喔Y