Reputation: 197
I want to have an interface that allows me to use methods with different parameters. Suppose I have an interface:
public interface Stuff {
public int Add();
}
And I have two classes A and B who implement the interface.
public class CLASS A implements Stuff{
public int Add(int id);
}
public class CLASS B implements Stuff{
public int Add(String name);
}
How can I achieve this?
Upvotes: 4
Views: 19589
Reputation: 1
you need to override the method
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));
}
}
Is this you want?
Upvotes: 0
Reputation: 59112
You can write a generic interface for adding some type, something like this:
public interface Addable<T> {
public int add(T value);
}
and then implement it via
public class ClassA implements Addable<Integer> {
public int add(Integer value) {
...
}
}
public class ClassB implements Addable<String> {
public int add(String value) {
...
}
}
Upvotes: 16
Reputation: 48258
either overload the methods:
public interface Stuff {
public int add(String a);
public int add(int a);
}
or check something in common in the inheritance
public interface Stuff {
public int add(Object a);
}
or use generics
public interface Stuff<T> {
public int add(T a);
}
Upvotes: 7