首页 > 解决方案 > 如何在具有不同类名的接口中定义抽象方法?

问题描述

通过在接口中定义抽象方法,我非常挣扎。为什么?在每个类中,必须实现与该接口相关的一个名为“getInstance”的方法。这些方法返回实际使用的实例。那么如何在不同类的接口中定义抽象方法呢?

public interface MyInterface {    
      public <<here is my question>> getInstance();
}

public class Class1() implements MyInterface {

      public Class1 getInstance() {
         return this;
      }
}

public class Class2() implements MyInterface {  

     public Class2 getInstance() {
        return this;
     }
}

标签: java

解决方案


请参阅我的评论,您似乎不太可能真的想这样做。

您可以执行Khan Saab 指出的操作: HavegetInstance的返回类型是MyInterface。但是,如果您需要访问界面的功能Class1Class2不属于界面的一部分,那将不起作用。

你可以用泛型做这样的事情:

public interface MyInterface<T> {    
      public T getInstance();
}

public class Class1 implements MyInterface<Class1> {
      public Class1 getInstance() {
         return this;
      }
}

public class Class2 implements MyInterface<Class2> {  
     public Class2 getInstance() {
        return this;
     }
}

但是你不能(例如)有一个数组并在其中MyInterface使用和混合(没有和强制转换)。Class1Class2instanceof

所有这些都可能意味着您想做其他事情。


推荐阅读