2012-02-21 214 views
0

假設我有一個抽象類FactorizedDialog。它看起來像這樣(請注意,這僅僅是一些虛擬的例子)我可以在實例化一個匿名類時實現一個接口嗎?

public abstract class FactorizedDialog extends Dialog { 

    public abstract void myMethod(); 
} 

現在我可以做這樣的事情:

FactorizedDialog dialog = new FactorizedDialog() { 

      @Override 
      public void myMethod() { 
       // implementation here 
      } 
} 

正如你可能已經猜到了我延長對話框(這實際上是一個抽象類)只爲它添加一個方法,所以當我創建一個匿名類時,我可以覆蓋它。是否有可能在java中實現接口,而實例化對話框而不是使用派生的抽象類?

回答

1

沒有,當你指定一個匿名內部類的父類,你可以要麼指定一個普通的類來擴展的接口,但不能同時使用。 section 15.9 of the JLS中顯示的語法根本不支持這兩種語法。

0

如果您的意思是Dialog是一個界面,那麼可以這樣做。

Dialog dialog = new Dialog() { 

    @Override 
    public void myMethod() { 
    } 
} 

當然隨後的myMethod聲明應該進入Dialog接口。

+0

正如我所提到的,這兩個都是抽象類。 – 2012-02-21 10:33:01

+0

@edem是的,我注意到後發佈我的答案。 – adarshr 2012-02-21 10:33:49

相關問題