首页 > 解决方案 > 使用抽象方法实现接口

问题描述

我正在尝试使用实现接口,public class MyStringSet implements StringSet{}但我不断收到错误消息“MyStringSet 不是抽象的,并且不会覆盖 StringSet 中的抽象方法 getCapacity()”。我如何能够在不出现此错误的情况下实现此界面?

    public interface StringSet {
         public void resize(int larger);
         public void insert(String entry);
         public void remove(String target);                  
         public String getRandomItem ();           
         public String getFirstItem ();         
         public boolean contains(String target);                
         public boolean is_empty( );                   
         public int inventory( );                  
         public int getCapacity( );
    }

标签: javaimplementation

解决方案


简短的回答:很可能,您的实现并没有真正“实现”那些抽象方法。接口就像孔。实现填补了这些漏洞,如果没有,您必须将扩展类声明为抽象类,因为它让一些“漏洞”打开。它们仍然必须由不再抽象的实际实现来填充。

这是您的案例的简单实现:

public class MyStringSet implements StringSet {
  public void resize(int larger) {}
  public void insert(String entry) {}
  public void remove(String target) {}
  public String getRandomItem () {return null;}
  public String getFirstItem () {return null;}
  public boolean contains(String target) {return false;}
  public boolean is_empty( ) {return false;}
  public int inventory( ) {return 0;}
  public int getCapacity( ) {return 0;}
}

推荐阅读