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
und die main
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
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