2012-05-18 55 views
2

假設有一個代碼,例如:擴展已經實現接口的抽象類的類是否需要接口?

package com.ps.Sample; 

public interface Sample 
{ 
    public void Method1(); 
} 

public abstract class AbstractSample implements Sample 
{ 
    public void Method1() 
    { 
     System.out.println("Hello World"); 
    } 
} 

public class MySample extends AbstractSample 
{ 

} 

public class TestSample 
{ 
    public static void main(String[] args) 
    { 
     Sample my = new MySample(); 

     my.Method1(); 
    } 

} 

我的問題是: 有沒有宣佈具體的類作爲

public class MySample extends AbstractSample implements Sample 

代替

public class MySample extends AbstractSample 
+0

注:抽象類實現接口。 –

回答

9

沒有任何好處,那沒有。這是多餘的。 AbstractSample 樣本,而MySample AbstractSample。所以MySample 樣本。

的Javadoc顯示了所有實現的接口,無論如何,不​​管你添加implements Sample與否。

+1

嘗試使用Person類來解釋它,就像.. ..我們不需要說老師是沃克,因爲老師是人,人是沃爾克。 IMO使用Sample來解釋它根本無法顯示冗餘。 – porfiriopartida

+2

你剛剛做到了:-)我使用了與OP相同的類名。 –

4

一個好處是,如果AbstractSample改爲不執行採樣,第一個聲明將仍然允許你MYSAMPLE的情況下,期望傳給一個樣品的方法。