Interface Interface / Klasse - wieso Abstract?

ImpCaligula

Mitglied
Salve!

Ich habe ein „Problem“ dessen Lösung ich nicht hinbekomme. Vor allem deswegen nicht, weil es bei anderen Interfaces und Klassen bereits funktioniert, nur bei dieser einen Kombination nicht. Aber von vorne.

Ich habe folgendes Interface:
Java:
public interface IMeineKlasse extends IInterfaceA<IInterfaceB> {

    public List<IInterfaceB> getMethode(Integer id);

}

Und dann habe ich nachfolgende Klasse:
Java:
public class MeineKlasse implements IMeineKlasse {

@Override
public List<IInterfaceB> getMethode(Integer id) {
        return irgendetwas;
    }

}


---
Ihr seht, dass ich einfach ein IMeineKlasse Interface habe und eine MeineKlasse Klassendatei, welche das Interface implementiert. Dann die Methode getMethode mit @Override. Genau so mache ich das bereits mit anderen Interfaces und Klassen - ohne Probleme und ohne für mich erkennbare Unterschiede.

Wenn ich jetzt einen Build mache meldet mir Jenkins:
[ERROR] COMPILATION ERROR :
error: MeineKlasse is not abstract and does not override abstract method getMethode() in IMeineKlasse [ERROR]
error: method does not override or implement a method from a supertype [INFO] 2 errors [INFO]

---
Und nun hänge ich da irgendwie ohne weiter zu kommen. Wäre für Eure Hilfe sehr dankbar...
 

stg

Top Contributor
Dann liegt der Fehler woanders, aber nicht beim hier geposteten Code-Schnipsel.
Prüfe zuerst einmal, ob du wirklich die aktuellste Version deines Source-Codes zu kompilieren versuchst. Vielleicht ist das ausversehen was durcheinander gekommen?!
 

ImpCaligula

Mitglied
Danke schon mal. Auch wenn Deine Antwort keine Lösung ist - ist sie für mich wichtig. Man weiß ja nie 100% ob man den Fehler dick vor Augen einfach übersieht. Aber dann kann ich schon mal ausschließen, dass ich einen Code Fehler an sich habe - sprich Interface, Klasse und Verritte benutze ich richtig... und Klassen müssen nicht unbedingt abstrakt gemacht werden wegen dem Override....

Aber wie gesagt - oftmals denkt man, man weiß die Syntax Regeln und es ist eben nicht so...
Daher schon mal Danke für Dein Feedback!
 

Dompteur

Top Contributor
"@Override" wird verwendet, wenn du in einer abgeleiteten Klasse eine Methode überschreibst. Da deine Klasse aber von Object abgeleitet ist, macht "@Override" hier keinen Sinn.
Weiters erweitert dein Interface ein anderes. In deiner Implementierungsklasse musst du auch die Methoden dieses Interfaces implementieren.
Sollte dir das nicht helfen, wäre es gut deine Interface-Hierarchie und deine Klasse hier zu posten.
 

ImpCaligula

Mitglied
GELÖST

Danke an Eure Hilfe, so wusste ich, dass der Code an sich nicht falsch war. Die „Lösung“ - war ein Build Problem. Nach zig Maven Clean Installs und Re-Builds hat er die Verbindung Interface und Klasse kapiert und es geht ^^
 

RalleYTN

Bekanntes Mitglied
"@Override" wird verwendet, wenn du in einer abgeleiteten Klasse eine Methode überschreibst. Da deine Klasse aber von Object abgeleitet ist, macht "@Override" hier keinen Sinn.
Weiters erweitert dein Interface ein anderes. In deiner Implementierungsklasse musst du auch die Methoden dieses Interfaces implementieren.
Sollte dir das nicht helfen, wäre es gut deine Interface-Hierarchie und deine Klasse hier zu posten.
@Override wird verwendet wenn man Methoden überschreibt. Das kann entweder Zwanghaft durch abstrakte Methoden in Superklassen oder dem Implementieren von Methode eines Interfaces sein. Es geht aber auch einfach so. Allerdings nur wenn die Methode in der Superklasse nicht als final deklariert wurde. Das @Override in dem gepostetem Codeschnipsel macht durchaus sinn.
 

Tom299

Bekanntes Mitglied
Wieso war das jetzt ein Build-Problem? Es ist, wie Dompteur schon angemerkt hat, so, daß deine Klasse auch die Methoden von IInterfaceA<IInterfaceB> implementieren muß. Das sagt dir aber Eclipse schon direkt beim coden. Es sei denn, du hast das schon stillschweigend nachgezogen. Kann mir aber nicht vorstellen, daß Maven das irgendwann einfach baut, obwohl die Methoden nicht implementiert wurde, dann wäre das ein dicker Bug im Build-System.
 

ImpCaligula

Mitglied
Wieso war das jetzt ein Build-Problem? Es ist, wie Dompteur schon angemerkt hat, so, daß deine Klasse auch die Methoden von IInterfaceA<IInterfaceB> implementieren muß

In InterfaceA und InterfaceB waren / sind keine relevanten Methoden für das „Problem-Interface“...

Ich habe den Code nicht (!) verändert. Einfach mehrmals den Build ausprobiert und auf einmal war es ok. Eclipse hat mir übrigens nichts bemängelt! Seit begin nicht. Nur Jenkins meldete andauernd die Fehlermeldung... Eclipse nicht...
 

Tom299

Bekanntes Mitglied
Also bei mir meckert Eclipse:

Java:
interface ITestA {
    public int getA();
}

interface ITestBA extends ITestA {
    public int getB();
}

class Test implements ITestBA {
   
    public Test() {
       
    }
   
    @Override
    public int getB() {
        return 2;
    }
}
 

Anhänge

  • TestInterface.png
    TestInterface.png
    7 KB · Aufrufe: 31

Tom299

Bekanntes Mitglied
In InterfaceA und InterfaceB waren / sind keine relevanten Methoden für das „Problem-Interface“...

Keine relevanten Methoden klang für mich aber nicht so, als wären KEINE Methoden drin. Sondern eher so, daß du die unrelevanten Methoden nicht brauchst, was natürlich nicht geht.
Wenn keine Methoden drin sind, gehts natürlich :p
 

ImpCaligula

Mitglied
Sorry... mein (Kommunikations-) Fehler :)

Nein. Also keine drin. Und wie gesagt... Eclipse meldete mir nichts. Habe schon an meinen einfachen Java Kenntnissen gezweifelt. Kann ja auch sein, dass man beim Code etwas übersieht. Eclipse nichts - Jenkins meckert. Nach mehreren Build dann auf einmal Jenkins grün... wer das versteht...
 

Tom299

Bekanntes Mitglied
Ja das ist eigenartig ... und wenn du bei jeder Änderung am Code dann wieder zig Durchläufe brauchst, um erfolgreich zu bauen, dann viel Spaß :(
 

ImpCaligula

Mitglied
Zum Glück nicht.. denn inzwischen habe ich nun wirklich die Interfaces und Klassen erweitert um weitere Methoden... aber bisher gehts immer beim ersten Build durch. Na ja...

Aber so unlogische Fehler braucht niemand.
Hat mich 1/2 Tag aufgehalten...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Kombination Interface und Abstrakte Klasse bei Generics Allgemeine Java-Themen 3
S static in Interface und Klasse Allgemeine Java-Themen 2
C Klassen Problem mit Funktion einer Generischen Klasse die ein Interface implementiert Allgemeine Java-Themen 0
X Interface - Klasse einladen Allgemeine Java-Themen 6
L interface abstrakte klasse Allgemeine Java-Themen 21
G Interface oder abstrakte Klasse Allgemeine Java-Themen 4
T Parameter einer Klasse auf Interface prüfen Allgemeine Java-Themen 6
S Interface Klasse überladen. Allgemeine Java-Themen 2
K Inneres Interface äußere Klasse Allgemeine Java-Themen 7
T Instanz einer Interface abgeleiteten Klasse erzeugen Allgemeine Java-Themen 3
G Unterschied abstrakte Klasse und Interface? Allgemeine Java-Themen 3
B Leere vererbte Interface-Methoden Allgemeine Java-Themen 8
OnDemand Interface imlementieren Allgemeine Java-Themen 4
Buroto Interface Allgemeine Java-Themen 2
T Komische Zeichen im Zusammenhang mit Serializable interface Allgemeine Java-Themen 13
M Kann man Annotationen auf Klassen einschränken die ein Interface implementieren? Allgemeine Java-Themen 1
B JaxB und @XmlIDREF mit Interface Allgemeine Java-Themen 1
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
P Abstrakte Klassen vs. Interface Allgemeine Java-Themen 4
Kirby.exe Autocloseable Interface Allgemeine Java-Themen 2
T Abgeleitetes Interface public ohne Schlüsselwort "interface"? Allgemeine Java-Themen 3
S static methode im Interface Allgemeine Java-Themen 1
S Interface, generischer Datentyp, Exception? Allgemeine Java-Themen 3
B Vererbung Interface und implementierende Klassen Allgemeine Java-Themen 8
A Anonyme Klassen - Interface Allgemeine Java-Themen 5
C Ein Iterator ist eine Implementierung des Interface Iterable? Allgemeine Java-Themen 2
J Generische Interface - Problem Allgemeine Java-Themen 3
mrBrown Namensfindung Fluent-Interface Allgemeine Java-Themen 0
J Logik in Interface Allgemeine Java-Themen 2
N Best Practice Allgemeines Verhalten für ein Interface implementieren? Allgemeine Java-Themen 7
B eigenes Consumer Interface Allgemeine Java-Themen 0
S 2 methoden mit gleichen namen und ein Interface Allgemeine Java-Themen 9
N GUI Interface, swing Allgemeine Java-Themen 7
Thallius Konzeptproblem User-Interface Allgemeine Java-Themen 5
T Interface vs abstract Allgemeine Java-Themen 2
S Klassen Abstract, Interface und ein Chat Tool Allgemeine Java-Themen 1
D generische Interface und konkrete Methode Allgemeine Java-Themen 3
N Problem mit Generics und Interface Allgemeine Java-Themen 4
D Methode mit optionalen Parametern in Interface Allgemeine Java-Themen 3
T Interface mit generische Typen Allgemeine Java-Themen 5
M Interface einer Library implementieren Allgemeine Java-Themen 3
A Klassen ein Interface aufzwingen Allgemeine Java-Themen 4
Bananabert Interface Custom 'Event' mit Interface Allgemeine Java-Themen 10
J Interface Serializable Methodensignatur Allgemeine Java-Themen 2
J Interface Interface für Framework verwenden Allgemeine Java-Themen 4
F Interface IInterface oder Interface? Allgemeine Java-Themen 3
M Generics (bounded wildcards statt Interface Bezeichnern) -- Sinn oder Unsinn? Allgemeine Java-Themen 2
T Interface Probleme Allgemeine Java-Themen 8
M Queues und Queue Interface Allgemeine Java-Themen 3
I Mehrfaches Implementieren eines generischen Interface Allgemeine Java-Themen 9
W Java Native Interface und "mp3player" Allgemeine Java-Themen 3
M Über Liste verschiendene JComponents mit eigenem implementierten Interface ansprechen Allgemeine Java-Themen 7
P Eclipse Java Native Interface-Problem Allgemeine Java-Themen 8
Z Abstrakte Klassen /Interface Allgemeine Java-Themen 5
pg1337 Interface-Frage Allgemeine Java-Themen 24
S Interface Welchen Interface Stil favorisiert ihr? (usability) Allgemeine Java-Themen 17
faetzminator statische Variablen in Interface - Vererbung? Allgemeine Java-Themen 9
R Implementierung eines Interface durch 2 verschiedene Klassen Allgemeine Java-Themen 6
T OpenOffice Interface Elemente Ein/Ausblenden Allgemeine Java-Themen 5
K Interface Interface comparable machen Allgemeine Java-Themen 9
T Interface > Abstract > Class Allgemeine Java-Themen 11
N Trick für Compilerfehler bei fehlendem Interface Allgemeine Java-Themen 12
G Interface -> InterfaceImplementierung Allgemeine Java-Themen 3
Ark Array durch Interface ersetzen Allgemeine Java-Themen 7
R Interface instanzieren Allgemeine Java-Themen 8
B Frage zu Interface und List Allgemeine Java-Themen 4
KrokoDiehl JNI: native im Interface Allgemeine Java-Themen 4
S normale vererbung als interface Allgemeine Java-Themen 2
E Beispiel für ein möglichst einfaches Interface Allgemeine Java-Themen 22
N Unterschied abstract interface und interface Allgemeine Java-Themen 4
S interface verbung problem Allgemeine Java-Themen 9
S problem programm mit interface: Allgemeine Java-Themen 3
R Vererbung mit Interface und Abstract Allgemeine Java-Themen 3
B Interface und von Thread ableiten Allgemeine Java-Themen 6
R Interface Serializable technische Begrenzung Allgemeine Java-Themen 2
T Interface-Referenz Allgemeine Java-Themen 2
S Interface Geschäftslokik & GUI Allgemeine Java-Themen 6
G Interface zwischen 2 Programmierern Allgemeine Java-Themen 10
C Schnittstellen(interface) Allgemeine Java-Themen 9
N List<? implements "Interface"> geht nicht Allgemeine Java-Themen 13
D javadoc interface + implementation + @overrides Allgemeine Java-Themen 16
A feststellen, welche Klassen ein Interface implementieren Allgemeine Java-Themen 3
G class, interface, or enum exp? Allgemeine Java-Themen 2
T Frage zu interface und "guter Programmierstil" Allgemeine Java-Themen 4
T Interface "on-the-fly" implementieren? Allgemeine Java-Themen 3
S Frage zu Interface Allgemeine Java-Themen 7
J Objektorientiert - Interface & Klassen Allgemeine Java-Themen 3
G Interface - Klassen implementieren das - Reflection ok? Allgemeine Java-Themen 4
T "Programming against the interface" sinnvoll? Allgemeine Java-Themen 18
G Interface mehrfach implementieren Allgemeine Java-Themen 5
@ zur Laufzeit Interface aus jar implementieren? Allgemeine Java-Themen 5
A Was ist der genau Sinn eines Interface? Allgemeine Java-Themen 13
E Oberbergriff für class und interface Allgemeine Java-Themen 20
D QuickSort, Interface Allgemeine Java-Themen 2
R Interface für Arithmethik? Allgemeine Java-Themen 3
MQue Interface implementieren Allgemeine Java-Themen 7
P Liste von Klassen die ein Interface implementieren speichern Allgemeine Java-Themen 12
L Interface Frage! Allgemeine Java-Themen 25
F Ein interface und private Methoden? Allgemeine Java-Themen 13
G nichtabstrakte Funktion zu einer Interface hinzufügen Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben