扩展已经实现接口的抽象类的类是否需要接口?

时间:2012-05-18 21:14:51

标签: java interface abstract-class

假设有一个代码:

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 

2 个答案:

答案 0 :(得分:9)

不,没有。这是多余的。 AbstractSample 示例,MySample AbstractSample。所以MySample 是一个样本。

无论您是否添加implements Sample,javadoc都会显示所有已实现的界面。

答案 1 :(得分:4)

如果将AbstractSample更改为不实现Sample,则第一个声明仍然允许您将MySample的实例传递给期望Sample的方法。