Auf equals von Vaterklasse zugreifen

DaSt

Bekanntes Mitglied
Hallo,

es geht um folgende Aufgabenstellung:

"Implementieren Sie nun ein Main-Programm, welches eine Liste von Fahrzeugen beinhaltet. Diese Liste beinhaltet alle Fahrzeuge die als gestohlen gemeldet wurden. Wenn die Polizei ein Fahrzeug untersucht, wird die Liste der gestohlenen Wägen auf das Kennzeichen überprüft. Erstellen Sie in der Klasse Fahrzeug eine equals-Methode, die zwei Fahrzeuge miteinander vergleicht. Die Unterklassen können diese Methode mithilfe von „super“ aufrufen. Testen Sie Ihre Implementierung, indem Sie in der main-Methode mehrere Fahrzeuge(PKWs und LKWs) in der Liste speichern und Sie mit einem weiteren Fahrzeugt vergleichen"

Die Klasse Fahrzeug ist eine abstrakte Klasse, die Unterklassen PKW und LKW erben von Fahrzeug. Wie kann ich jetzt diese equals von der Vaterklasse aufrufen(mit super())

Meine Vaterklasse Fahrzeug sieht folgendermaßen aus

Code:
public abstract class Fahrzeug  {
   
   private String kennzeichen;
   private boolean istBenziner;
   private Color color;
   private int ps;
   
   
   public Fahrzeug(String kz, boolean x,Color c, int ps){
     
     this.kennzeichen=kz;
     this.istBenziner=x;
     this.color=c;
     this.ps=ps;
     
   }
   
//diese equals soll prüfen ob das Kennzeichen übereinstimmt
   public boolean equals(Object o){
     
     if(this == o){
       return true;
     }
     if(this.getClass() != o.getClass()){
       return false;
     }
     if(o==null){
       return false;
     }
     
     Fahrzeug f1 = (Fahrzeug)o;
     
     if(this.kennzeichen.equals(f1)){
       return true;
     }
     
     return false;
   }

//hier kommen noch die Getter und setter

und die main
Code:
import java.util.ArrayList;


public class main {

   public static void main(String[] args) {

     ArrayList <Fahrzeug> list = new ArrayList<Fahrzeug>();
     
     
   
     Pkw p1 = new Pkw("R-RR",true,Color.BLACK,150,5,5);
     Pkw p2 = new Pkw("R-RRI",true,Color.BLACK,150,5,5);
     
     Lkw l1 = new Lkw("R-BB",false,Color.GREEN,200,5,5);
     Lkw l2 = new Lkw("R-BBS",false,Color.GREEN,200,5,5);
     
     list.add(p1);
     list.add(p2);
     list.add(l1);
     list.add(l2);
     
     Pkw test = new Pkw("x", true,Color.BLACK,150,5,5);
     
     
     //So wollte ich das Kennzeichen prüfen
     // funktioniert aber nicht
     //Ich erhalte 2x die Ausgabe Fzg gestohlen, obwohl es gar nicht kommen dürfte

     for(Fahrzeug current : list){
       
       if(current.equals(test)){
         System.out.println("Fzg gestohlen");
       }
     }

in den Klassen PKW, sowie LKW habe ich ebenfals equals methoden um zu Prüfen ob 2 Fahrzeuge gleich sind.

Wie kann ich die equals der Vaterklasse in der main verwenden.

Danke
 

JStein52

Top Contributor
in der main gar nicht. Und das hier ist irgendwie komisch:

Java:
if(this.kennzeichen.equals(f1)){
       return true;
     }

f1 ist doch ein Fahrzeug und kennzeichen ist ein String. Du vergleichst hier einen String mit einem Fahrzeug ???

Wie sehen denn deine LKW und PKW - Klassen aus ? Hast du darin auch eine equals-Methode ? wenn du schreibst du kriegst zweimal (nicht viermal !) die falsche Meldung dann ist entweder in Lkw oder in Pkw ein Fehler

Edit: oder Beim Lkw liefert er vorher schon false zurück weil die Klasse nicht passt.
 
Zuletzt bearbeitet:

DaSt

Bekanntes Mitglied
hier meine lkw klasse

Getter und Setter jeweils weggelassen

Code:
public class Lkw extends Fahrzeug{
 
 
   private int anzahlReifen;
   private int ladeGewicht;
 
 
   //Konstruktor
   public Lkw(String kz, boolean x,Color c, int ps, int anzahlReifen, int ladeGewicht) {
     super(kz, x,c, ps);
     this.anzahlReifen=anzahlReifen;
     this.ladeGewicht=ladeGewicht;
   }
 
 
 
   public boolean equals(Object o){
   
     if(this == o){
       return true;
     }
     if(this.getClass() != o.getClass()){
       return false;
     }
     if(o == null){
       return false;
     }
   
     Lkw l = (Lkw) o;
   
     if(this.ladeGewicht != l.ladeGewicht){
       return false;
     }
   
   
     return true;
   }

und hier die pkw

Code:
public class Pkw extends Fahrzeug{
 
   private int sitzplätze;
   private int anzahlTüren;
 
 
 
   //Pkw Konstruktor
   public Pkw (String kz,boolean x,Color c, int ps, int sitzplätze, int anzahlTüren){
   
     super(kz,x,c,ps);
     this.sitzplätze=sitzplätze;
     this.anzahlTüren=anzahlTüren;
   
   }
 
   
 
 
   public boolean equals(Object obj) {
     if (this == obj)
       return true;
     if (obj == null)
       return false;
     if (getClass() != obj.getClass())
       return false;
   
     Pkw other = (Pkw) obj;
     if (sitzplätze != other.sitzplätze)
       return false;
   
     if(this.getPs() != other.getPs()){
       return false;
     }
     if(this.getColor() != other.getColor()){
       return false;
     }
     if(this.isIstBenziner() != other.isIstBenziner()){
       return false;
     }
   
     return true;
   }

die abfrage in der Fahrzeugklasse habe ich nun folgendermaßen abgeändert

Code:
if(this.kennzeichen.equals(f1.getKennzeichen())){
       return true;
     }

erhalte aber immer noch die gleiche Ausgabe
 

JStein52

Top Contributor
Ja klar. Die equals - Methode in der Klasse Fahrzeug wird ja auch gar nicht aufgerufen. Du überschreibst ja jeweils in den Subklassen die equals-Methode. Du musst die dann dort auch aufrufen.

super.equals(obj);

und den returnwert davon halt geeignet auswerten. Und es werden einige Dinge in den equals-Methode ja auch dopllet gemacht. Du solltest dir nochmal überlegen was du in welcher Klasse machst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Say Equals Java Basics - Anfänger-Themen 6
W LocalDate vergleichen mit Equals? Java Basics - Anfänger-Themen 7
W Equals-Methode überschreiben bei composition Java Basics - Anfänger-Themen 20
W Wann und warum hashcode und equals? Java Basics - Anfänger-Themen 14
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
J compareTo()- und equals-Methode Java Basics - Anfänger-Themen 3
S 2 Strings mit Equals vergleichen Java Basics - Anfänger-Themen 11
lallmichnichtzu Methoden Überladen des .equals-Operators Java Basics - Anfänger-Themen 6
C Objekt1.equals(Objekt2) = immer false. Wieso? Java Basics - Anfänger-Themen 22
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
M Objekte mittels equals vergleichen Java Basics - Anfänger-Themen 14
S Interface Equals und hashCode Java Basics - Anfänger-Themen 16
G Java equals() Methode Java Basics - Anfänger-Themen 9
J equals funktioniert nicht - Warum Java Basics - Anfänger-Themen 13
B Date - Vergleich (equals / after) ? Java Basics - Anfänger-Themen 3
G Ratlosigkeit zur Aufgabe im Anhang (boolean, equals.) Java Basics - Anfänger-Themen 20
D Unterschied == und equals in Arrays Java Basics - Anfänger-Themen 2
O equals Methode möglichst effizient Java Basics - Anfänger-Themen 13
H equals methode Java Basics - Anfänger-Themen 1
L Logistiksystem Methode equals und hashcode Java Basics - Anfänger-Themen 20
J Methoden Equals Methode für Integer und Objekte überschreiben? Java Basics - Anfänger-Themen 9
M Erste Schritte Mehrere eingaben in einer Line vergleichen (if equals...) Java Basics - Anfänger-Themen 6
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
A OOP Richtige Verwendung von ArrayList und equals Java Basics - Anfänger-Themen 24
E equals Prüfung fehlgeschlagen Java Basics - Anfänger-Themen 3
C Objekt equals Java Basics - Anfänger-Themen 2
L String überprüfen mit .equals .contains oder .matches? Java Basics - Anfänger-Themen 1
H equals Methode Java Basics - Anfänger-Themen 1
F String equals NULL Problem Java Basics - Anfänger-Themen 4
S Methoden equals(object o) / toString Java Basics - Anfänger-Themen 15
E Calender - Equals Problem Java Basics - Anfänger-Themen 14
T Datentypen compareTo() u. equals() bei Strings Java Basics - Anfänger-Themen 3
Psypsy hashCode, equals und toString Java Basics - Anfänger-Themen 3
K hashCode, compareTo vs. equals Java Basics - Anfänger-Themen 3
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
S Unterschiede zwischen equals und contains Java Basics - Anfänger-Themen 2
F Erste Schritte Hilfe bei Übung zu String equals() und Schleifen Java Basics - Anfänger-Themen 8
A Probleme mit equals und get.Text Java Basics - Anfänger-Themen 12
S compareTo() und equals() Java Basics - Anfänger-Themen 6
S equals Methode bei String Java Basics - Anfänger-Themen 5
R illegal start of expression - 3 Strings vergleichen mit .equals () Java Basics - Anfänger-Themen 5
K Cast bei equals Java Basics - Anfänger-Themen 2
T SQL equals Java Basics - Anfänger-Themen 4
OnDemand Methoden Equals Methde Java Basics - Anfänger-Themen 3
D if block mit equals im rumpf Java Basics - Anfänger-Themen 11
K Vererbung equals-Methode bei Vererbung abstrakter Klassen Java Basics - Anfänger-Themen 8
SexyPenny90 Wieso ist diese eigene Equals-Methode schlecht? Java Basics - Anfänger-Themen 17
K String - Equals Java Basics - Anfänger-Themen 2
J Klassen Warum ist (a.equals(b)) gleich (a==b)? Java Basics - Anfänger-Themen 13
B Warum gibst hier Equals false zurück ? Java Basics - Anfänger-Themen 23
S Verständnissfrage equals() Java Basics - Anfänger-Themen 2
R compareTo & equals Java Basics - Anfänger-Themen 10
M Verschiedene Möglichkeiten mit 'equals' abdecken? Java Basics - Anfänger-Themen 9
M Collections Problem bei Überschreibung von hashcode() und equals() bei Hashset-Implementierung Java Basics - Anfänger-Themen 5
W Stringvergleich mit equals Java Basics - Anfänger-Themen 13
C equals() Java Basics - Anfänger-Themen 4
D Problem mit string.equals bzw string.contains Java Basics - Anfänger-Themen 4
T Problem mit der while(!string.equals("x")) Java Basics - Anfänger-Themen 2
E Equals-Methode auf Class-Object Java Basics - Anfänger-Themen 17
X problem mit equals.gelöst Java Basics - Anfänger-Themen 2
J Methode equals() Java Basics - Anfänger-Themen 7
M Equals überschreiben Java Basics - Anfänger-Themen 3
K equals() und hashcode() überschreiben Java Basics - Anfänger-Themen 5
K equals in Hashmap() Java Basics - Anfänger-Themen 4
B if equals(irgendeine Zahl+Buchstabe) Java Basics - Anfänger-Themen 6
T equals() und hashCode() Java Basics - Anfänger-Themen 7
D probs mit clone und equals Java Basics - Anfänger-Themen 10
3 Collections containsKey() liefert false obwohl equals() true liefert Java Basics - Anfänger-Themen 6
N Vergleich per equals Java Basics - Anfänger-Themen 5
S comparable und equals Java Basics - Anfänger-Themen 7
M Frage zu Textvergleich (equals) Java Basics - Anfänger-Themen 8
G Strings vergleichen mit equals, geht das kürzer? Java Basics - Anfänger-Themen 4
B Frage zu Funktion mit equals Java Basics - Anfänger-Themen 17
D Eigene equals methode schreiben Java Basics - Anfänger-Themen 4
J Gibt es eine möglichkeit ähnlich wie .equals(bedingung1 ||bedingung ..n) ? Java Basics - Anfänger-Themen 5
D "2010–03–12".equals( "2010-03-12" ) Java Basics - Anfänger-Themen 6
X Frage zur Implementierung von equals() Java Basics - Anfänger-Themen 2
T Problem mit equals Java Basics - Anfänger-Themen 5
K Equals,Instanceof und "==" Java Basics - Anfänger-Themen 7
C warum liefert equals kein TRUE Java Basics - Anfänger-Themen 12
E Java hashCode equals Problem Java Basics - Anfänger-Themen 2
S equals vergleich Java Basics - Anfänger-Themen 10
H Equals hascode Java Basics - Anfänger-Themen 5
S Equals Downcast? Java Basics - Anfänger-Themen 11
D equals Vergleiche Java Basics - Anfänger-Themen 7
L String mit equals vergleichen Java Basics - Anfänger-Themen 6
neurox Tutorial equals und hashCode überschreiben Java Basics - Anfänger-Themen 33
F String equals null wird nicht angenommen. Java Basics - Anfänger-Themen 24
A Reihenfolge bei equals() Java Basics - Anfänger-Themen 2
P Toleranz bei equals Java Basics - Anfänger-Themen 4
B Frage zu equals() und hashCode() Java Basics - Anfänger-Themen 28
A veränderbar kanonische Klassen: Methode equals, hashcode, serializable Java Basics - Anfänger-Themen 5
D String#equals + String#charAt Java Basics - Anfänger-Themen 5
S equals() - hashCode() - Contract Java Basics - Anfänger-Themen 54
G mehrere Werte für .equals ? Java Basics - Anfänger-Themen 22
T [SOLVED] Java String equals funktioniert nicht Java Basics - Anfänger-Themen 5
C 2 Objekte (mathematisch) vergleichen in der equals Methode Java Basics - Anfänger-Themen 10
B String.equals(Object) anstatt "=" Java Basics - Anfänger-Themen 3
R Vergleiche mit Equals(), hashCode() und == Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben