2017-05-23 6 views
1

Ich möchte eine Schnittstelle haben, die es mir erlaubt, Methoden mit verschiedenen Parametern zu verwenden. Angenommen, ich habe eine Schnittstelle:Java-Schnittstelle mit verschiedenen Methoden-Parametern

public interface Stuff { 
    public int Add(); 
} 

Und ich habe zwei Klassen A und B, die die Schnittstelle implementieren.

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


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

Wie kann ich das erreichen?

Antwort

8

Sie können eine generische Schnittstelle schreiben einige für das Hinzufügen Geben Sie etwas wie folgt ein:

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

und dann setzen sie über

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

public class ClassB implements Addable<String> { 
    public int add(String value) { 
     ... 
    } 
} 
+0

Danke, das hat funktioniert! – fredjohnson

4

entweder überlasten die Methoden:

public interface Stuff { 

    public int add(String a); 
    public int add(int a); 

} 

oder überprüfen Sie etwas gemeinsam in der Vererbungs

public interface Stuff { 

    public int add(Object a); 

} 

oder verwenden Generika

public interface Stuff<T> { 

    public int add(T a); 

} 
0

Sie die Methode

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

} 

Ist das Sie außer Kraft setzen müssen?

Verwandte Themen