抽象类需要在java 7中实现整个接口吗?

时间:2014-06-25 08:54:31

标签: java class interface abstract

我需要一组不同的类来实现某个接口。但是,很多这些类,但不是所有类,都需要为接口中定义的某些方法实现相同的实现。我想知道我是否可以创建一个抽象类来实现接口,并且只为这些类创建相同的方法?

例如,我有界面A:

public interface A{ public returnType method1(){}; public returnType method2(){}; }

我可以这样做:

public abstract class AbstractPartialA implements A{
     @Override
     public returnType method1(){
         implementation
     }
}

并且从这个Abstract类扩展的类实现了实现接口所需的其余方法吗?

3 个答案:

答案 0 :(得分:4)

是的,你可以,这就是抽象类的确切目的。

答案 1 :(得分:1)

抽象类需要在java 7中实现整个接口吗?

答案是"不,#34;。抽象类可以实现整个接口,也可以只实现接口的某些方法。

案例1

如果它实现了整个界面并仍被声明为“抽象”,则意味着我们不希望其他人(将要使用我们的类的人)为我们的类创建对象

此类的示例是javax.servlet.http中的HttpServlet。这里HttpServlet类没有任何抽象方法,但仍被声明为' abstract'

案例-2

很简单,如果类没有实现任何一个接口方法,那么它被声明为' abstract'。现在,扩展抽象类的另一个类的责任是提供这种方法的实现,而这个方法并没有被抽象类'

答案 2 :(得分:0)

您可以,当您尝试从AbstractPartialA扩展时,Java会要求您:

  • 实现在已实现的接口中声明但尚未实现的所有方法
  • 实现在超类中声明为abstract的所有方法

请记住,一个类被认为是实现其超类实现的所有接口,而不仅仅是在此类声明中implements关键字之后专门编写的接口。这适用于类的类型(以及它的引用类型)以及它需要实现的方法。