简体   繁体   English

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

[英]Is interface required on a class extending an abstract class already implementing the interface?

Assume there is a code as such: 假设有一个代码:

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();
    }

}

My question is: Is there any benefit to declaring the concrete class as 我的问题是:宣布具体课程是否有任何好处

public class MySample extends AbstractSample implements Sample

instead of 代替

public class MySample extends AbstractSample 

No, there is not. 不,那里没有。 It's redundant. 这是多余的。 AbstractSample is a Sample, and MySample is a AbstractSample. AbstractSample 是一个 Sample,MySample 是一个 AbstractSample。 So MySample is a Sample. 所以MySample 是一个样本。

The javadoc displays all the implemented interfaces anyway, whether you add the implements Sample or not. 无论您是否添加implements Sample ,javadoc都会显示所有已实现的接口。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM