Hi folgendes Problem,
ich dümpel mich gerade ein wenig durch ein Java-Tutorial und habe mir eine eigene Klasse erstellt... (wuuuhuuu gut gell ;o)).
Eine neue Klasse soll die Eigenschaften der bestehenden Klasse übernehmen.
Also habe ich mittels des Schlüsselworts "extends" die bestehende Klasse eingebunden.
Es klappt auch fast wunderbar mit der Ausnahme, dass ich jetzt folgende Fehlermeldung erhalte:
HelloWorld ist dabei eine bestehende Klasse.Code:Implicit super constructor HelloWorld() is undefined for default constructor. Must define an explicit constructor
Die neue Klasse habe ich folgendermassen erstellt:
... mehr noch nicht... was ist daran fehlerhaft?Code:class Auto extends HelloWorld { }
Könnt ihr mir helfen? Wäre super... vielen Dank schon mal im voraus und schönes We!!!
Gruss
Manuel
Thema: [Java] Problem mit extends
-
14.01.2005, 22:43 #1Cadet 3rd Year
- Dabei seit
- Jan 2003
- Ort
- Hessen
- Beiträge
- 40
[Java] Problem mit extends
- Anzeige
Logge dich ein, um diese Anzeige nicht zu sehen. -
14.01.2005, 23:09 #2
Re: [Java] Problem mit extends
Hat die Klasse HelloWorld denn einen Leerkonstruktor, also HelloWorld() ?
Weil, wenn die Superklasse keinen Default, bzw Leerkonstruktor hat, kann sie nicht extended werden.System: Intel C2Q 8300, Asus P5QL-E, 4GB, HD4670, Samsung 830 256GB SSD, Samsung F1 640GB, Samsung 500GB, Windows 7 x64 Professional, HP ZR 2440w.
Multimedia: Yamaha RX-V473, 2x Canton GLE 490, Asus O!Play Air, Panasonic DMR EH 495 an einem Toshiba Regza 26A300P. Storage übernimmt ein Synology DS-211j mit 2x 3TB im RAID1.
+ Richtig Posten + Probleme mit Partitionen? + Du suchst einen Dateimanager? + Probleme mit Hardware sicher entfernen? +
-
14.01.2005, 23:20 #3Cadet 3rd Year
Ersteller dieses Themas
- Dabei seit
- Jan 2003
- Ort
- Hessen
- Beiträge
- 40
Re: [Java] Problem mit extends
Hi ...
danke schon mal für die schnelle Hilfe...
ich habe zwei Konstruktoren selber erstellt. Ich dachte einen Default-Konstruktor gibt es immer? Bzw. ok...gibt es dann wenn kein anderer angegeben wird...
aber was hab ich dann jetzt falsch gemacht? Ich habe zwei Konstruktoren selber erstellt...
sieht folgendermassen aus...:
kein sinnhafter code...wollte einfach nur bisi üben...aber wo ist da jetzt mein denkfehler..danke schon malCode:public class HelloWorld { public String Autoname; public int Erstzulassung; public int Leistung; public HelloWorld(String Name){ this.Autoname = Name; } public HelloWorld(String Name, int Erstzulassung, int Leistung) { this.Autoname = Name; this.Erstzulassung = Erstzulassung; this.Leistung = Leistung; } public void AutoAlter(int anzahl) { while (anzahl-- > 0) { System.out.println("Autoalter: " + (2005 - Erstzulassung) + " Jahre"); } } public static void main(String[] args) { HelloWorld einAuto = new HelloWorld("Opel Corsa", 1800, 120); System.out.println("Autotyp: " + einAuto.Autoname); System.out.println("Erstzulassung: " + einAuto.Erstzulassung); System.out.println("Leistung: " + einAuto.Leistung); } }
-
14.01.2005, 23:25 #4
Re: [Java] Problem mit extends
Du brauchst einen Konstruktor, der keine Parameter annimmt, einen Leerkonstruktor also:
public HelloWorld(){
this(null);
}
oder
public HelloWorld(){
this.Autoname = null;
}System: Intel C2Q 8300, Asus P5QL-E, 4GB, HD4670, Samsung 830 256GB SSD, Samsung F1 640GB, Samsung 500GB, Windows 7 x64 Professional, HP ZR 2440w.
Multimedia: Yamaha RX-V473, 2x Canton GLE 490, Asus O!Play Air, Panasonic DMR EH 495 an einem Toshiba Regza 26A300P. Storage übernimmt ein Synology DS-211j mit 2x 3TB im RAID1.
+ Richtig Posten + Probleme mit Partitionen? + Du suchst einen Dateimanager? + Probleme mit Hardware sicher entfernen? +
-
14.01.2005, 23:30 #5Cadet 3rd Year
Ersteller dieses Themas
- Dabei seit
- Jan 2003
- Ort
- Hessen
- Beiträge
- 40
Re: [Java] Problem mit extends
wieso brauche ich das? sorry, wenn ich so doof nachfrage...aber ich find hier grade mal keine erklärung...
wenn ich keinen bestimmten konstruktor angegeben hätte würde es funktionieren oder wie? weil er dann den default verwendet?
-
15.01.2005, 02:11 #6
Re: [Java] Problem mit extends
Klappt es denn so?
Ich weiss auch nicht genau, aber ich hatte das Problem auch schon und damit gelöst bekommen.
Wenn du von einer Klasse erbst, muss diese einen Leerkonstruktor haben, damit in der Unterklasse dein Konstruktor den der Superklasse "überschreiben" kann.
Sonst weiss der Compiler nicht, welchen anderen Konstruktor mit welchen Werten er nehmen soll.System: Intel C2Q 8300, Asus P5QL-E, 4GB, HD4670, Samsung 830 256GB SSD, Samsung F1 640GB, Samsung 500GB, Windows 7 x64 Professional, HP ZR 2440w.
Multimedia: Yamaha RX-V473, 2x Canton GLE 490, Asus O!Play Air, Panasonic DMR EH 495 an einem Toshiba Regza 26A300P. Storage übernimmt ein Synology DS-211j mit 2x 3TB im RAID1.
+ Richtig Posten + Probleme mit Partitionen? + Du suchst einen Dateimanager? + Probleme mit Hardware sicher entfernen? +
-
15.01.2005, 11:10 #7
Re: [Java] Problem mit extends
1. Kein default-Konstruktor in beiden Klassen definiert und die Oberklasse hat auch sonst keine Konstruktoren-> ok, Java erzeugt Default-Konstruktoren.
2. Sobald aber die Oberklasse einen nicht-Default-Konstruktor erhält und keinen Default-Konstruktor explizit hingeschrieben bekommt, dann erhältst Du besagte Fehlermeldung.
Beispiele:
ok:
auch ok:Code:public class HelloWorld {} public class Auto extends HelloWorld {}
ebenfalls ok:Code:public class HelloWorld { public HelloWorld() {} } public class Auto extends HelloWorld {}
falsch:Code:public class HelloWorld { public HelloWorld() {} } public class Auto extends HelloWorld { public Auto(){} }
Code:public class HelloWorld { public HelloWorld(String s() {} } public class Auto extends HelloWorld { }
auch falsch:
so geht es wieder:Code:public class HelloWorld { public HelloWorldString s() {} } public class Auto extends HelloWorld { public Auto(){} }
bzw. so:Code:public class HelloWorld { public HelloWorld(){} public HelloWorldString s() {} } public class Auto extends HelloWorld { public Auto(){} }
Code:public class HelloWorld { public HelloWorld(){} public HelloWorldString s() {} } public class Auto extends HelloWorld { }Manchmal müssen Männer Dinge tun, die sie nicht tun wollen, damit Frauen Dinge tun, die sie nicht tun wollen.
-
15.01.2005, 11:46 #8
Re: [Java] Problem mit extends
Genau so meinte ich das ;-)
War bloss zu faul, das alles so wunderbar aufzuschreiben.System: Intel C2Q 8300, Asus P5QL-E, 4GB, HD4670, Samsung 830 256GB SSD, Samsung F1 640GB, Samsung 500GB, Windows 7 x64 Professional, HP ZR 2440w.
Multimedia: Yamaha RX-V473, 2x Canton GLE 490, Asus O!Play Air, Panasonic DMR EH 495 an einem Toshiba Regza 26A300P. Storage übernimmt ein Synology DS-211j mit 2x 3TB im RAID1.
+ Richtig Posten + Probleme mit Partitionen? + Du suchst einen Dateimanager? + Probleme mit Hardware sicher entfernen? +
-
15.01.2005, 14:31 #9
Re: [Java] Problem mit extends
Richtig, Du hast eigentlich mit Deinem ersten Posting schon alles erklärt.

Aber oft sieht man den Wald vor lauter Bäumen nicht, deswegen bin ich mal konkret™ geworden.Manchmal müssen Männer Dinge tun, die sie nicht tun wollen, damit Frauen Dinge tun, die sie nicht tun wollen.

Zitieren