java 板


LINE

最近讀到了介面,所以創了一個名叫Phone 的抽象類別、兩個分別叫SurfInternet 和Chat的介面,但編譯過程一直出現錯誤,說非static的方法不能被static的東西給關 聯,但我就是沒看到有東西被我用成static啊!拜託各位幫幫我。 interface SurfInternet { void SurfInternet(String WebName); } interface Chat { void Chat(String ToWhom); } abstract class Phone { int price; abstract void expensive(); void PrintPrice() { System.out.println("Price="+price); } } class Sony extends Phone implements SurfInternet,Chat { public Sony(int price,String WebName,String ToWhom) { this.price=price;SurfInternet(WebName);Chat(ToWhom); } public void Chat(String ToWhom) { System.out.println("Talking to "+ToWhom); } public void SurfInternet(String WebName) { System.out.println("Surfing "+WebName); } public void expensive() { System.out.println("It is so expensive!"); } } public class Test { public static void main(String[] args) { Sony sony=new Sony(10000,"yahoo","John"); Sony.expensive(); } } 結果: Test.java:42: error: non-static method expensive() cannot be referenced from a static context Sony.expensive(); ^ 1 error 到底~~~﹍﹍ 不知道我有沒有理解錯,介面比抽象類別還要更抽象簡潔,抽象類別是給和自己有關連的東西繼承的, 而介面只是要給他多個功能用而已。然後還是搞不懂這兩個東西到底有什麼實際用途,就算沒有這兩個東西 好像也不會怎樣,難道他們只是用來定義東西的嗎?
1F:→ luckyshin: Sony要改成sony 09/26 16:57
2F:→ s9209122222: 您真是太神了!眼睛看到脫窗沒發現 09/26 17:00
那個介面到底是有什麼實際用途呢,看了課本範例: interface IArea { void area(); } class Circle implements IArea{ public void area(){...} } 這樣子和下面這到底差在哪邊? class Circle{ public void area(){...} } 感覺抽象類別和介面很多此一舉啊!現在我只能夠死記有這種寫法﹍ 有神人可以開導我嗎?感謝
3F:推 luckyshin: 跟Polymorphism有關, 然後也可以拿來實現多重繼承 09/26 17:21
我現在正是在看介面和多形這邊,但是就算他們繼承了也還是要自己打一遍啊,譬如: interface A{ void A(); } class B implements A{ public void A(BBB); } class C implements A{ public void A(CCC); } 那我有沒有加那個interface做的事情不是都一樣嗎? 同理,抽象類別同樣讓我有這種感覺﹍,還是說他們只是概念上的用途? ※ 編輯: s9209122222 (122.117.207.31), 09/26/2015 17:31:38
4F:推 LPH66: 當某個函式需要一個物件有某個函式時 09/26 17:48
5F:→ LPH66: 宣告「我收一個有某函式的物件」這件事即是靠 interface 09/26 17:48
6F:→ LPH66: 以 IArea 跟 Circle 的例子, 一個函式宣告它收 IArea 物件 09/26 17:49
7F:→ LPH66: 即表示它期望傳進來的物件有 area() 函式可以用 09/26 17:49
8F:→ LPH66: 那當你不只有 Circle 實作 IArea 時, 其他實作的 class 09/26 17:50
9F:→ LPH66: 的物件也能交給目標函式使用 09/26 17:50
10F:→ LPH66: 這就是 interface 這東西的精神: "物件要提供的介面" 09/26 17:51
11F:→ LPH66: (這也是為什麼它會叫做 interface 介面的原因) 09/26 17:51
12F:→ LPH66: 介面跟抽象類別的差別在於介面只宣告我要有什麼介面 09/26 17:52
13F:→ LPH66: 抽象類別除介面外可能提供某幾個介面有預設行為 09/26 17:52
14F:→ s9209122222: 好像有點了解了,感謝 09/26 17:54
15F:→ s9209122222: 那各位在寫程式的時候都是先定好interface後再寫其他 09/26 17:55
16F:→ s9209122222: 的嗎? 09/26 17:55
17F:→ ah7675: interface == abstract class without properties 09/27 16:56







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP