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));
}
}
Это ты хочешь?