※ 引述《BUQ (固執又暴燥)》之銘言:
: 目前 初學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(); //寵物買糧食
: }
: }
: }
依你目前回應的情況,就算讓你伸手伸好伸滿也學不會啊。
比較推薦你跟著一本書 (有結構化、整理好的知識) 循序漸近地走一二輪
而不是在網路上看著片面的知識東補西補,還不知道完整的樣貌
其實就是 public type declaration 要與檔名一致的概念
(type 是指 class 或 interface 跟其它等價的東西)
以網路上釋出的 thinking in java 2/e 版,第 245 頁為例
https://i.imgur.com/Q8rWEPE.png
它有介紹這個概念,而且這概念從 Java 一出生到現在都沒變過。
就算拿近期一點的書《Java SE 9 技術手冊》,在第 2 章就提到了
https://i.imgur.com/MKpRdGf.png
===========================================================
而你的第 2 個問題,是 method definition 的問題,
除了特殊的建構子 (一種特別的 method),
其他一般的 method 都有該遵從的語法
https://i.imgur.com/s7wRj6a.png
你根本沒把 returnType 放在心上,這很可能顯示你沒有好好跟著一本書
札實地 (呆呆地) 把東西做過一次。很多事,要慢慢來才是比較快的。
PS. 《Java SE 14 技術手冊》這個月要出了,可以預購惹。
https://www.tenlong.com.tw/products/9789865025137