Hallo,
ich habe ganz einfache Frage, und zwar, ich verstehe nicht wie hier meine Interface Methode überschreiben soll.
Wenn ich so schreibe funktioniert alles perfekt
Java:
publicclassMatheTest{publicstaticvoidmain(String[] args){MatheM addieren =(int a,int b)-> a + b;MatheM multiplizieren =(int a,int b)-> a * b;System.out.println(addieren.fkt(15,45));}interfaceMatheM{intfkt(int a,int b);}}
aber wenn ich meine Interface Methode in getrennte Klasse schreibe, wie hier
Java:
publicinterfaceMathe{intfkt(int a,int b);}
Code:
public class MatheTest implements Mathe{
public static void main(String[] args){
Mathe addieren = (int a, int b) -> a + b;
Mathe multiplizieren = (int a, int b) -> a * b;
System.out.println(addieren.fkt(15, 45));
}
}
dann bekomme ich hier folgende Fehlermeldung.
MatheTest is not abstract and does not override abstract method fkt(int,int) in Mathe
Dann überschreibe meine Methode so
Java:
@OverrideMathe addieren =(int a,int b)-> a + b;@OverrideMathe multiplizieren =(int a,int b)-> a * b;
Ich glaube, ich verstehe hier etwas einfaches nicht.
@Robat Erst danke für die schnelle Antwort.
Und noch mal um Klar zumachen, also wenn ich in der getränte Klasse meine Interface implementiert habe, dann darf ich nicht in andere Klasse, welcher von diese Interface erbt keine Lambda Funktion benutzen?
Wenn ich Lambdas benutzen will dann muss ich zusammen schreiben die Klasse und die Interface?
Habe ich richtig verstanden?
Wo das Interface deklariert ist, ist sowohl für Lambdas als auch für implements egal.
Wenn du implements nutzt, musst du die Methode ganz normal als Methode definieren.
Lambdas kannst du immer nutzen (wenn das Interface passend ist).
Nein.
Wenn du implements nutzt, musst du die Methode ganz normal als Methode definieren.
Lambdas kannst du immer nutzen (wenn das Interface passend ist).
Du hast implements benutzt, aber die Methode nicht implementiert.
Wenn du implements benutzt, musst du die Methoden auf herkömmlichen Weg implementieren.
Deine Klasse MatheTest implementiert die Methode fkt aber nicht.
Hmm ok, du hast einfach Methode überschreiben.
Meine Frage ist, ist es möglich diese Methode mit Lambda zu schreiben und gleichzeitig
@Override behalten?