Java-интерфейс с различными параметрами метода

Я хочу иметь интерфейс, который позволяет мне использовать методы с различными параметрами. Предположим, у меня есть интерфейс:

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

Как мне этого добиться?

3 ответа

Решение

Вы можете написать общий интерфейс для добавления некоторого типа, что-то вроде этого:

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) {
        ...
    }
}

Либо перегружайте методы:

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

 }

Вам нужно переопределить метод

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

}

Это ты хочешь?

Другие вопросы по тегам