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灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP