Java 实现接口的抽象类不需要方法实现。为什么?

Java 实现接口的抽象类不需要方法实现。为什么?,java,Java,我正在编写一个类,该类将实现一个接口——该接口中定义了一个方法。当我编写类定义并在类声明后编写implements interfaceService,结束我的定义并关闭类的括号而不重写接口方法时。。它编译得很好。没有编译错误,我能够在Eclipse中保存实现类。为什么会这样?是否应该强制实现类重写该方法?以下是接口和实现类定义: 接口: public interface interfaceService{ List<Map<String, Object>> doS

我正在编写一个类,该类将实现一个接口——该接口中定义了一个方法。当我编写类定义并在类声明后编写
implements interfaceService
,结束我的定义并关闭类的括号而不重写接口方法时。。它编译得很好。没有编译错误,我能够在Eclipse中保存实现类。为什么会这样?是否应该强制实现类重写该方法?以下是接口和实现类定义:

接口:

public interface interfaceService{
    List<Map<String, Object>> doSearch(SearchVo formVo,String indexName,String type)
            throws SearchException;
    long getTotalHitCount();
}
我觉得这与将实现类定义为抽象类有关。为什么?

是否应该强制实现类重写该方法

不,抽象类不必实现接口的每个方法。您选择不实现的那些方法仍然是
抽象的
,必须在继承树的下一层实现

如果
ClientFlagSearch
不是
abstract
,它确实必须实现
SearchService
的每一种方法

是否应该强制实现类重写该方法

不,抽象类不必实现接口的每个方法。您选择不实现的那些方法仍然是
抽象的
,必须在继承树的下一层实现

如果
ClientFlagSearch
不是
abstract
,它确实必须实现
SearchService

的每一种方法。接口是一组抽象方法

抽象类可以有抽象方法

您不需要在抽象类中实现接口的方法,但可以。

接口是抽象方法的集合

抽象类可以有抽象方法

您不需要在抽象类中实现接口的方法,但您可以。

来自:

但是,如果类被声明为抽象类,则可以定义一个不实现所有接口方法的类

发件人:

但是,如果类被声明为抽象类,则可以定义一个不实现所有接口方法的类


规则是必须在第一个具体类中实现抽象方法

  • abstract
    类不必实现
    abstract
    方法
  • 抽象类可以有抽象方法

规则是抽象方法必须在第一个具体类中实现

  • abstract
    类不必实现
    abstract
    方法
  • 抽象类可以有抽象方法

    • 抽象类不必实现任何东西。这和你写的一样

      public abstract class ClientFlagSearch {
          List<Map<String, Object>> doSearch(SearchVo formVo,String indexName,String type)
                  throws SearchException;
          long getTotalHitCount();
      }
      
      公共抽象类ClientFlagSearch{
      列表数据搜索(SearchVo formVo、字符串索引名、字符串类型)
      抛出异常;
      长getTotalHitCount();
      }
      
      抽象类不必实现任何东西。这和你写的一样

      public abstract class ClientFlagSearch {
          List<Map<String, Object>> doSearch(SearchVo formVo,String indexName,String type)
                  throws SearchException;
          long getTotalHitCount();
      }
      
      公共抽象类ClientFlagSearch{
      列表数据搜索(SearchVo formVo、字符串索引名、字符串类型)
      抛出异常;
      长getTotalHitCount();
      }
      
      任何扩展抽象类的类都必须实现接口方法任何扩展抽象类的类都必须实现接口方法Severything->Anything是的。改变了一切->什么都好,是的。更改了它。不应该!,必须BE@nachokk是的,先生,不应该!,必须BE@nachokk是的,先生。