Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
wie kann ich im Konstruktor Klasse Auto alle Eigenschaften der Klasse Fahrzeug übergeben, damit ich beim Erzeuhung eines Objektes dieser Klasse auch alles aus der Klasse fahrzeig habe?
Code:
public class Auto extends Fahrzeug{
Integer status;
public Auto(int status) {
this.status = status;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
Den ersten Schritt hast Du mit "extends Fahrzeug" doch schon getan. Und nun kannst Du aus dem Konstruktor Deiner Klasse Auto heraus auch noch auf den Konstruktor der Klasse Fahrzeug zugreifen
Code:
public Auto(int status) {
super(); //da noch alle Übergabeparameter übergeben, die der Konstruktor der Klasse Fahrzeug erwartet
this.status = status;
}
Vielen Dank für die schnelle Antwort
bedeutet dieser Kommentar: //da noch alle Übergabeparameter übergeben, die der Konstruktor der Klasse Fahrzeug erwartet
, dass ich alles mit Beispiel: this.farbe = farbe noch zufügen muss?
Und wie kann ich jetzt ein Objekt diese Klasse erzeugen ?
mit :Auto diesel = new Auto(2);
Muss ich dann keine Parameter bei der Erzeugung des Objektes übergeben?
wenn Du ein neues Objekt Auto erstellst : Auto diesel = new Auto(2); , übergibst Du der Klasse Auto nicht nur den Status (das ist hier wohl die 2?) sondern auch noch alle Übergabeparameter, die der Konstruktor der Klasse Fahrzeug benötigt (die kenne ich aber nicht!).
Nehmen wir einmal an, Deine Klasse Fahrzeug besitzt eine Variable Typ, welche auch durch den Konstruktor gesetzt wird, so mußt Du dem Konstruktor der Klasse Auto, diese Variable dann auch noch übergeben. Das sieht dann so aus:
wenn du ein Auto erzeugst wird damit natürlich auch ein Fahrzeug-Objekt erzeugt, Auto ist beides gleichzeitig
> Auto diesel = new Auto(2);
> Muss ich dann keine Parameter bei der Erzeugung des Objektes übergeben?
du übergibst doch den Parameter 2?
wenn Parameter für den Aufruf des Super-Konstruktors benötigt werden, dann können die im Auto-Konstruktor mit angegeben werden,
oder auch im Konstrukor automatisch hinzugefügt werden
Beispiel
Code:
public Auto(int status, String farbe) {
super(farbe);
this.status = status;
}
public Auto(int status) {
super("blau");
this.status = status;
}
Hi,
was den Status angeht, da solltest du auf Konstanten zurückgreifen. Du hast ja irgendwo ein
Code:
Auto diesel = new Auto(2);
Was 2 bedeutet weiß so kein Mensch (macht den Code schnell fehleranfällig). Schöner ist es einfach das ganze als Konstanten in der Klasse anzulegen:
Code:
class Auto extends Fahrzeug {
final public int UNBEKANNT = -1;
final public int BENZINER = 1;
final public int DIESEL = 2;
final public int ELEKTRO = 3;
final public int HYBRID = 4;
....
}
// neue Instanz kannst du dann mit
Auto diesel = new Auto(Auto.DIESEL);
// erzeugen
Seit Java 1.5 hast du noch die Möglichkeit richtige Enums
zu nehmen. Dadurch hast du Typsicherheit, brauchst dich nicht
um die Konstanten zu kümmern (kannst z.B. keine doppelt vergeben)
und hast auch noch die Möglichkeit auf die Namen zuzugreifen/auszugeben.