Discussion:
[問題] 實作介面的問題
(时间太久无法回复)
飄落的櫻花
2006-12-04 22:40:59 UTC
Permalink
最近照著書上的範例

來做事件

public class Main extends MouseAdapter implements MouseMotionAdapter

我已經把event跟awt都import近來了

可是加上implements MouseMotionAdapter

就會出現interface expected here的訊息在那行而不讓我compile

請問這是為什麼?~"~

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.225.105.223
痞子軍團團長
2006-12-04 22:46:01 UTC
Permalink
※ 引述《del680202 (飄落的櫻花)》之銘言:
: 最近照著書上的範例
: 來做事件
: public class Main extends MouseAdapter implements MouseMotionAdapter
: 我已經把event跟awt都import近來了
: 可是加上implements MouseMotionAdapter
: 就會出現interface expected here的訊息在那行而不讓我compile
: 請問這是為什麼?~"~

MouseAdapter 是個 class
所以某個 class(你的 Main)extends MouseAdapter 沒有問題

你的標題也說了... 實做介面的問題...
可是,為什麼本草綱目上頭說,MouseMotionAdapter 也還是個 class 呢?

=====
是說,我還是搞不太懂什麼時候用 interface
啥時候用 abstract class

不過,這兩個在 Java 語法當中是不一樣的東西
這點倒是得記得的很清楚

--
 侃侃長論鮮窒礙  網站:http://www.psmonkey.idv.tw
 眾目睽睽無心顫  個人版:telnet://legend.twbbs.org
 煢居少聊常人事 
 殺頭容易告白難  歡迎參觀 Java 版(@ptt.cc)精華區 \囧/

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.136.152.237
飄落的櫻花
2006-12-04 23:32:51 UTC
Permalink
※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: ※ 引述《del680202 (飄落的櫻花)》之銘言:
: : 最近照著書上的範例
: : 來做事件
: : public class Main extends MouseAdapter implements MouseMotionAdapter
: : 我已經把event跟awt都import近來了
: : 可是加上implements MouseMotionAdapter
: : 就會出現interface expected here的訊息在那行而不讓我compile
: : 請問這是為什麼?~"~
: MouseAdapter 是個 class
: 所以某個 class(你的 Main)extends MouseAdapter 沒有問題
: 你的標題也說了... 實做介面的問題...
: 可是,為什麼本草綱目上頭說,MouseMotionAdapter 也還是個 class 呢?
: =====
: 是說,我還是搞不太懂什麼時候用 interface
: 啥時候用 abstract class
: 不過,這兩個在 Java 語法當中是不一樣的東西
: 這點倒是得記得的很清楚
我貼錯了

我用的的是書上的範例

public class Main extends MouseAdapter implements MouseMotionListener

然後出現的是這個

Main is not abstract and does not override abstract method mouseMoved
(java.awt.event.MouseEvent) in java.awt.event.MouseMotionListener

我是照著書上打的

實作一個監聽

但是不知道為什麼卡在他連讓我implements都不肯= ="

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.225.105.223
好累想睡覺
2006-12-05 00:13:17 UTC
Permalink
※ 引述《del680202 (飄落的櫻花)》之銘言:
: ※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: : MouseAdapter 是個 class
: : 所以某個 class(你的 Main)extends MouseAdapter 沒有問題
: : 你的標題也說了... 實做介面的問題...
: : 可是,為什麼本草綱目上頭說,MouseMotionAdapter 也還是個 class 呢?
: : =====
: : 是說,我還是搞不太懂什麼時候用 interface
: : 啥時候用 abstract class
: : 不過,這兩個在 Java 語法當中是不一樣的東西
: : 這點倒是得記得的很清楚
: 我貼錯了
: 我用的的是書上的範例
: public class Main extends MouseAdapter implements MouseMotionListener
: 然後出現的是這個
: Main is not abstract and does not override abstract method mouseMoved
: (java.awt.event.MouseEvent) in java.awt.event.MouseMotionListener
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
一點個人的拙見....
class implements 一個 interface 後要實做內部的所有抽象函式
(除非用implements的是abstract class 那就可以不用了 )
你應該只是內部沒有定義 MouseMotionListener 的兩個抽象函式
mouseDragged(MouseEvent e) 和 mouseMoved(MouseEvent e)
: 我是照著書上打的
: 實作一個監聽
: 但是不知道為什麼卡在他連讓我implements都不肯= ="

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.25.118.131
※ 編輯: aeifkz 來自: 163.25.118.131 (12/05 16:13)
良葛格
2006-12-05 16:59:57 UTC
Permalink
※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: =====
: 是說,我還是搞不太懂什麼時候用 interface
: 啥時候用 abstract class
: 不過,這兩個在 Java 語法當中是不一樣的東西
: 這點倒是得記得的很清楚

Abstract class是用在您要先實作某些方法時…例如Template Method…
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/AbstractClass.htm

介面…完全抽象,只用於規範…
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/InterfaceType.htm

--
良葛格學習筆記
http://caterpillar.onlyfun.net/Gossip/

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.166.214.170

继续阅读narkive:
Loading...