【问题标题】:Java interface with different method parameters具有不同方法参数的 Java 接口
【发布时间】:2017-05-23 08:19:52
【问题描述】:

我想要一个接口,允许我使用具有不同参数的方法。假设我有一个接口:

public interface Stuff {
    public int Add();
 }

我有两个实现接口的类 A 和 B。

public class CLASS A implements Stuff{
    public int Add(int id);
}  


public class CLASS B implements Stuff{
    public int Add(String name);
}

我怎样才能做到这一点?

【问题讨论】:

    标签: java interface


    【解决方案1】:

    您可以编写一个通用接口来添加一些类型,如下所示:

    public interface Addable<T> {
        public int add(T value);
    }
    

    然后通过

    实现
    public class ClassA implements Addable<Integer> {
        public int add(Integer value) {
            ...
        }
    }
    
    public class ClassB implements Addable<String> {
        public int add(String value) {
            ...
        }
    }
    

    【讨论】:

    • 如何多态地调用它
    • @station 与多态调用其他任何东西的方式相同。
    【解决方案2】:

    要么重载方法:

    public interface Stuff {
    
        public int add(String a);
        public int add(int a);
    
     }
    

    或检查继承中的共同点

    public interface Stuff {
    
        public int add(Object a);
    
     }
    

    或使用泛型

    public interface Stuff<T> {
    
        public int add(T a);
    
     }
    

    【讨论】:

    • 两个选项都可以使用,但我个人更喜欢泛型。
    【解决方案3】:

    你需要重写方法

    public class CLASS A implements Stuff{
        public int add(int a ,int b){
            int result=a+b;
            return result;
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
           A ab=new A();
           ab.add(3, 4);
           System.out.println(ab.add(3, 4));
        }
    
    }
    

    这是你想要的吗?

    【讨论】:

      猜你喜欢
      • 2013-02-02
      • 1970-01-01
      • 2013-04-14
      • 1970-01-01
      • 2020-08-12
      • 2011-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多