fredjohnson
fredjohnson

Reputation: 197

Java interface with different method parameters

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

Answers (3)

Ice_zero
Ice_zero

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

khelwood
khelwood

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

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

Related Questions