java接口在扩展已经实现接口的抽象类的类上是必需的吗?
假设有这样一个代码:
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
# 1 楼答案
不,没有。这是多余的。AbstractSample是一个样本,MySample是一个抽象样本。因此,MySample是一个样本
不管是否添加
implements Sample
,javadoc都会显示所有实现的接口# 2 楼答案
一个好处是,如果AbstractSample被更改为不实现Sample,那么第一个声明仍然允许您将MySample的实例传递给需要样本的方法