Interface Abstrakte Interface Methode kann nicht benutzt werden

ArdianH101

Mitglied
Hallo,
ich bin gerade dabei mir ein wenig Java Basics an zu eignen und hänge an einem Problem.
Kurz zum Kontext der Aufgabe:
Ich hab Drei Klassen [Apfel, Birne, Auto], dazu ein interface vergleichbarInKilos, welche in der main Methode aufgerufen wird, damit Instanzen der drei Klassen miteinander verglichen werden können.
In der Main Methode wird mir aber nun gesagt, ich könne die abstrakte Methode nicht aufrufen.
Als return Type habe ich Object benutzt, weil ich nicht wusste wie ich das Problem sonst lösen soll, wenn ich auf der einen Seite ints und auf der anderen Seite doubles zurück geben muss.
Codes und Fehler im Anhang.

Ich bedanke mich schonmal für jeden Tipp! :)
 

Anhänge

  • apfel.JPG
    apfel.JPG
    48,6 KB · Aufrufe: 57
  • auto.JPG
    auto.JPG
    47,9 KB · Aufrufe: 46
  • birne.JPG
    birne.JPG
    48,2 KB · Aufrufe: 54
  • fehler.JPG
    fehler.JPG
    108,9 KB · Aufrufe: 48
  • interface.JPG
    interface.JPG
    26,3 KB · Aufrufe: 54
  • main.JPG
    main.JPG
    62,9 KB · Aufrufe: 46

Joose

Top Contributor
Bitte poste deinen Code im Forum und nicht mit Hilfe von Bildern, danke :)
[Code=Java].... dein Code ....[/Code]

Dein Problem: Die Methode pruefeGewicht erwartet als Parameter nur 2 Objekte (sprich du kannst beliebige Objekte an diese Methode übergeben). Die Klasse Object besitzt aber nicht die von dir gewünschte Methode. Statt "Object" als Parametertyp zu verwenden solltest du das Interface verwenden ;)
 

ArdianH101

Mitglied
Bitte poste deinen Code im Forum und nicht mit Hilfe von Bildern, danke :)
[Code=Java].... dein Code ....[/Code]

Dein Problem: Die Methode pruefeGewicht erwartet als Parameter nur 2 Objekte (sprich du kannst beliebige Objekte an diese Methode übergeben). Die Klasse Object besitzt aber nicht die von dir gewünschte Methode. Statt "Object" als Parametertyp zu verwenden solltest du das Interface verwenden ;)
Sorry, merk ich mir für das nächste mal :)
Danke erstmal.
Aber wie schreibe ich denn das Interface als Parametertyp?
Java:
public abstract VergleichbarInKilos getGewichtInKilos();
das wäre meine Idee, aber dann hab ich aber kompilierfehler bei zum Beispiel Apfel, weil der return type ja ein int ist und kein VergleichbarInKilo Typ.
 

Joose

Top Contributor
Nein so änderst du den Rückgabewert der Methode "getGewichtInKilos" das ist ja nicht dein Ziel.

Du musst einfach statt dem Type "Object" deinen Interface Type verwenden ;)
pruefeGewicht(VergleichbarInKilos ....) {
 

ArdianH101

Mitglied
Java:
private static void pruefeGewicht(VergleichbarInKilos ob1, VergleichbarInKilos ob2){                             
            if(ob1.getGewichtInKilos() > ob2.getGewichtInKilos()){
                System.out.println(ob1+" ist schwerer als "+ob2);
            }
            else{
                System.out.println(ob2+" ist schwerer als "+ob1);
            }
        }

Das solltest du doch gemeint haben oder? :D aber da haut er immernoch n fehler raus.

Java:
bad operand types for binary operator '>'
  first type:  java.lang.Object
  second type: java.lang.Object

ich versteh zwar dass man zwei objects nicht miteinander vergleichen kann, aber wie kann ich denn auf den "Zahlenbereich" den ich mit der VergleichbarInKilos Methode berechne, über das Object zugreifen?
.equals
vergleicht ja nur und ob man da mit größer kleiner arbeiten kann bezweifle ich.
 
Zuletzt bearbeitet:

JAVAKEK

Mitglied
Soll getGewichtInKilos() den überhaut ein Objekt zurückliefern? Da macht doch eher ein double Sinn. Da ist es egal ob du dann auch mal ein int zurückgibst.
 

ArdianH101

Mitglied
Du kannst dafür double als Rückgabetyp benutzen. Deine zwei Probleme sollten dann gelöst sein. Falls nicht, suchen wir weiter nach Ursachen.
Vielen Dank, ich wusste nicht, dass das dann auch mit double möglich ist :D
Kompiliert alles, jedoch ist die Ausgabe nicht korrekt:
Java:
Wer ist schwerer?!
Apfel: Sorte: Boskoop Gewicht in g: 250 und Apfel: Sorte: Golden Delicious Gewicht in g: 178 sind gleichschwer
Birne: Sorte: Williams Gewicht in kg: 0.178 ist schwerer als Apfel: Sorte: Golden Delicious Gewicht in g: 178
Apfel: Sorte: Boskoop Gewicht in g: 250 ist leichter als Auto: Marke: Trabant Gewicht in Tonnen: 0.66

Habe mal ausgetestet, warum zum Beipsiel bei der zweiten Aussage rauskommt, dass die Birne mit 178 gramm schwerer ist als der Apfel mit 178 gramm und bin drauf gekommen, dass bei der Methode getGewichtInKilos in der Apfel Klasse, also:
Code:
public class Apfel implements VergleichbarInKilos{
    private final String sorte;
    private final int gewichtInGramm;
   
    public Apfel(String sorte, int gewichtInGramm) {
        this.sorte = sorte;
        this.gewichtInGramm = gewichtInGramm;
    }

      
    public String toString() {
        return "Apfel: Sorte: "+sorte+" Gewicht in g: "+gewichtInGramm;
    }
       
        //DIE HIER IST GEMEINT
        public double getGewichtInKilos(){
            return this.gewichtInGramm/1000;
        }
}

am Ende einfach ne 0 returned wird. Die Methode teilt also das Gewicht in gramm, welches int ist durch 1000 (um auf Kilo zu kommen) und wirft dann 0 raus.
Meiner Meinung nach, wirft die Methode also immernoch n int raus, weil 178 durch tausend nunmal ne Komma Zahl wäre..

irgend welche tipps ? :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Abstrakte Methode vs. Interface Java Basics - Anfänger-Themen 2
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
M Erste Schritte Prüfungsbeispiel: Interface / abstrakte Klassen Java Basics - Anfänger-Themen 8
kilopack15 Beziehung Interface - (abstrakte) Klasse -Unterklasse Java Basics - Anfänger-Themen 3
M Statische Methoden in Interface/Abstrakte Klasse Java Basics - Anfänger-Themen 6
M Interface und Abstrakte Klassen Java Basics - Anfänger-Themen 12
propra Interface - abstrakte Klasse Java Basics - Anfänger-Themen 18
D Wann genau abstrakte Klasse und wann ein Interface verwenden? Java Basics - Anfänger-Themen 4
K Abstrakte Klasse vs. Interface Java Basics - Anfänger-Themen 21
M Unterscheid Abstrakte Klassen/Interface Klassen? Java Basics - Anfänger-Themen 7
G Interface oder Abstrakte Klasse? Java Basics - Anfänger-Themen 3
G konkretes beispiel: interface hier besser als abstrakte kl. Java Basics - Anfänger-Themen 4
Acha Unterschied Interface - abstrakte Klasse Java Basics - Anfänger-Themen 4
B OOP: abstrakte klasse implementiert interface Java Basics - Anfänger-Themen 3
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
S Vererbung Abstrakte Methoden: Wozu das Ganze?! Java Basics - Anfänger-Themen 7
S abstrakte methoden in subclass? Java Basics - Anfänger-Themen 7
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
G Java Abstrakte Methoden Java Basics - Anfänger-Themen 2
T Abstrakte Klasse und Interfaces Java Basics - Anfänger-Themen 12
D Abstrakte Klasse, Konstruktorkette, Attribute setzen Java Basics - Anfänger-Themen 12
L Abstrakte Typen und Schnittstellen Java Basics - Anfänger-Themen 19
S Abstrakte Methode nutzen Java Basics - Anfänger-Themen 9
J abstrakte Methode in Klasse mit Rückgabetyp der abgeleiteten Klasse Java Basics - Anfänger-Themen 5
J Objekte und Abstrakte Klassen Java Basics - Anfänger-Themen 2
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
T Übungsaufgabe abstrakte Klasse Java Basics - Anfänger-Themen 21
S Gehaltsberechnung (Vererbung, abstrakte Methoden) Java Basics - Anfänger-Themen 6
S Datentypen Abstrakte Datentypen Java Basics - Anfänger-Themen 0
K Abstrakte Klasse: vererbte Klasse; instance of? Java Basics - Anfänger-Themen 26
A Abstrakte Datentypen - Methode delete Java Basics - Anfänger-Themen 6
N Vererbung Abstrakte Klasse stateful Java Basics - Anfänger-Themen 3
D Abstrakte Klassen Verständniss Frage Java Basics - Anfänger-Themen 4
D Methoden Abstrakte Methoden Java Basics - Anfänger-Themen 3
W Abstrakte Klasse mit Variable? Java Basics - Anfänger-Themen 2
D Interface Interfaces und abstrakte Klassen implementieren Java Basics - Anfänger-Themen 4
B Abstrakte Klassen Java Basics - Anfänger-Themen 7
C Abstrakte und virtuelle Methoden in Java Java Basics - Anfänger-Themen 4
E verdeckte abstrakte Methode sinnvoll? Java Basics - Anfänger-Themen 7
A Vererbung Abstrakte Klasse mit Methode die Objekte der Subklassen benutzt? Java Basics - Anfänger-Themen 7
W Abstrakte und konkrete Klasse Java Basics - Anfänger-Themen 4
S Abstrakte Klassen Java Basics - Anfänger-Themen 2
C Dynamische Referenz & abstrakte Klassen Java Basics - Anfänger-Themen 3
F Abstrakte Klasse doch zum "Teil" instanzieren? Java Basics - Anfänger-Themen 4
V Interface Interfaces und abstrakte Klassen Java Basics - Anfänger-Themen 3
H Abstrakte Basisklasse Verständnisproblem! Java Basics - Anfänger-Themen 8
G Abstrakte Klassen - theoretische Frage Java Basics - Anfänger-Themen 2
OnDemand Abstrakte Klassen Java Basics - Anfänger-Themen 4
T OOP Abstrakte Klassen und ihre Kinder: wie läuft das? Java Basics - Anfänger-Themen 3
M Abstrakte Klassen Java Basics - Anfänger-Themen 2
J Interfaces Abstrakte Klassen Java Basics - Anfänger-Themen 15
N Datentypen abstrakte Klasse wird instanziert Java Basics - Anfänger-Themen 3
D Methoden abstrakte Methoden und Rückgabewerte Java Basics - Anfänger-Themen 2
N Abstrakte Klasse Java Basics - Anfänger-Themen 28
R Namenskonvention abstrakte Klassen Java Basics - Anfänger-Themen 6
C OOP Objektstruktur: abstrakte Klassen Java Basics - Anfänger-Themen 3
L Über abstrakte Klasse auf eine Klasse zugreifen? Java Basics - Anfänger-Themen 6
V Vererbung Abstrakte Methode Java Basics - Anfänger-Themen 3
T OOP abstrakte klassen - methoden Java Basics - Anfänger-Themen 8
M Abstrakte Klassen Java Basics - Anfänger-Themen 21
J Welchen Sinn haben abstrakte Methoden? Java Basics - Anfänger-Themen 4
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
StupidAttack Abstrakte Methoden in nicht-abstrakter Methode in abstrakter Klasse Java Basics - Anfänger-Themen 6
T Abstrakte Klasse Java Basics - Anfänger-Themen 3
S Abstrakte Klasse Java Basics - Anfänger-Themen 5
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
T OO, Konstruktor, abstrakte Methoden Java Basics - Anfänger-Themen 13
T Abstrakte Klassen Java Basics - Anfänger-Themen 6
C abstrakte Klassen mögen mich nicht... Java Basics - Anfänger-Themen 2
I Abstrakte Klassen Java Basics - Anfänger-Themen 8
K Abstrakte Klasse bilden? Java Basics - Anfänger-Themen 11
S Abstrakte Klasse, festlegen, dass Methode verändert werden muss. Java Basics - Anfänger-Themen 4
D Zusammenfassung von Klassen (Vererbung? Abstrakte Klass? ...?) Java Basics - Anfänger-Themen 8
H Warum Java? | Abstrakte Klasse = Modul? Java Basics - Anfänger-Themen 20
G Abstrakte Klassen und Methoden Java Basics - Anfänger-Themen 3
C Schnittstellen und Abstrakte Klassen Java Basics - Anfänger-Themen 3
I Abstrakte Klassen Java Basics - Anfänger-Themen 22
J abstrakte klasse und methode super Java Basics - Anfänger-Themen 2
H Eine Abstrakte Klasse muss. Java Basics - Anfänger-Themen 7
G Abstrakte Klasse "Point" Java Basics - Anfänger-Themen 2
G Abstrakte Klassen ? Java Basics - Anfänger-Themen 9
G Abstrakte Methode in gleicher Klasse aufrufen Java Basics - Anfänger-Themen 5
M abstrakte Klasse Java Basics - Anfänger-Themen 3
nadoria abstrakte Klassen Java Basics - Anfänger-Themen 6
F Abstrakte Klasse: Konstruktor vs init() Java Basics - Anfänger-Themen 13
G Abstrakte Klasse (was passiert hier) Java Basics - Anfänger-Themen 3
T abstrakte Klassen? Java Basics - Anfänger-Themen 2
M abstrakte klassen und interfaces Java Basics - Anfänger-Themen 2
L abstrakte Methode nicht implementiert! Java Basics - Anfänger-Themen 5
M abstrakte klassen / Schnittstellen Java Basics - Anfänger-Themen 4
H abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 13
D Abstrakte Klasse Graphics Java Basics - Anfänger-Themen 3
R Interfaces durch abstrakte Klassen ersetzbar? Java Basics - Anfänger-Themen 8
A Abstrakte Klasse Java Basics - Anfänger-Themen 3
G abstrakte klasse Java Basics - Anfänger-Themen 6
F Abstrakte Klasse Baum Java Basics - Anfänger-Themen 6
A Eine abstrakte Methode static machen? Java Basics - Anfänger-Themen 4
A Abstrakte Klassen und Interfaces Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben