Hallo, wir haben gerade als Thema "Vererbung", dabei soll die Klasse "Pkw" mehrere Kinder haben (Limousine,Kombi,Cabrio) und einige (Unter-)Variablen, dazu haben wir eine Art UML angefertig.
Das ganze habe ich nun soweit programmiert, aber an folgendem verzweifle ich:
Verstehe nicht was StackOverflow in diesem Zusammenhang nun bedeuten soll?
Mein Quellcode:
Anwendung.java:
Pkw.java:
Motor.java
Cabrio.java:
Kombi.java:
Limousine.java:
Danke im voraus für jede Hilfe!
Gruß
FatalError
Das ganze habe ich nun soweit programmiert, aber an folgendem verzweifle ich:
Code:
Exception in thread "main" java.lang.StackOverflowError
at Motor.<init>(Motor.java:6)
...
... (weitere Stellen im Code, eigentlich überall wo Variablen übergeben werden)
Mein Quellcode:
Anwendung.java:
Java:
public class Anwendung {
public static void main(String[] args) {
Anwendung anw = new Anwendung();
anw.ausfuehren();
}
public void ausfuehren(){
Pkw pkw = new Pkw();
System.out.println(pkw.toString());
}
}
Java:
public class Pkw {
int Tueren,Plaetze,farbe,art,PS,Treibstoff;
String Farbe,Art;
Motor motor;
Limousine limo;
Cabrio cabrio;
Kombi kombi;
public Pkw(){
farbe = 1;
art = 2;
PS = 120;
Treibstoff = 1; //1: Benzin, 2: Diesel, 3: Elektro, 4: Gas
motor = new Motor(PS,Treibstoff);
switch(art){
case 1 : limo = new Limousine(true);Art = "Limousine";return;
case 2 : cabrio = new Cabrio(1);Art = "Cabrio";return;
default : kombi = new Kombi(1);Art = "Kombi";
}
switch(farbe){
case 1: Farbe = "schwarz";return;
case 2: Farbe = "weiß";return;
case 3: Farbe = "rot";return;
default: Farbe = "blau";
}
}
public String toString(){
return"Art = "+ Art +" Farbe = "+Farbe+" "+motor.toString();
}
}
Java:
public class Motor{
int Leistung;
String Art;
public Motor(int l, int a){
Leistung = l;
switch (a){
case 1 : Art = "Diesel"; return;
case 2 : Art = "Benzin"; return;
case 3 : Art = "Elektro"; return;
default : Art = "Gas";
}
}
public String toString(){
return " Leistung="+Leistung+"PS , Art= "+Art+" ";
}
}
Java:
public class Cabrio extends Pkw {
int dach;
String Dach;
public Cabrio(int a){
dach = a;
switch(dach){
case 1 : Dach = "Stoff";return;
default : Dach = "HardTop";
}
}
public String toString(){
return super.toString()+", Dach = "+Dach+", Türen = "+Tueren+", Plätze = "+Plaetze;
}
}
Java:
public class Kombi extends Pkw {
int reeling;
String Reeling;
public Kombi(int a){
reeling = a;
switch(reeling){ case 1 : Reeling = "Ja";return; default : Reeling = "Nein"; }
Tueren = 4;
Plaetze = 5;
}
public String toString(){
return super.toString()+", Reeling = "+Reeling+", Türen = "+Tueren+", Plätze = "+Plaetze;
}
}
Java:
public class Limousine extends Pkw {
boolean Schiebedach;
public Limousine(boolean a){
Schiebedach = a;
Tueren = 2;
Plaetze = 4;
}
public String toString(){
if (Schiebedach==true){
return super.toString()+", Schiebedach = Ja "+", Türen = "+Tueren+", Plätze = "+Plaetze;
}else{
return super.toString()+", Schiebedach = Nein "+", Türen = "+Tueren+", Plätze = "+Plaetze;
}
}
}
Danke im voraus für jede Hilfe!
Gruß
FatalError