簡體   English   中英

將接口實現為匿名內部類時出錯

[英]Error implementing interface as anonymous inner class

我正在使用Intellij IDEA學習JavaFX。 編譯以下代碼時:

public class Main extends Application implements EventHandler<ActionEvent>{

//More code 

    button.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
            System.out.println("Hello World");
        }

//More code

    });

我收到錯誤消息"Class must either be declared abstract or implement abstract method" 但是通過觀察代碼,我顯然可以使用匿名內部類來實現功能接口。

當我在Main類中構造一個空的handle方法時,代碼可以正常工作,但我不認為我必須這樣做。 到底是怎么回事!

原因是此行:

public class Main extends Application implements EventHandler<ActionEvent>{

刪除implements EventHandler<ActionEvent> ,您就很好。

您可能會感到困惑,因為您已經使Main類都實現了該接口,並且正在創建一個也實現該接口的匿名內部類。 這樣就剩下一個實現了該方法的類-匿名內部類。 但是外部Main類尚未實現該方法,這就是為什么您收到錯誤消息的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM