使用抽象方法实现接口

Implementing an Interface with an abstract method

我正在尝试使用 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( );
    }

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

下面是针对您的案例的简单实施:

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