![]() |
[JAVA] Vererbung: Problem mit Konstruktor
Hallo,
ich habe in Java eine Klasse class1, die zwei Konstruktoren hat mit verschiedenen Parametern:
Code:
Es gibt keinen parameterlosen Konstruktor. Wenn ich jetzt die Klasse erweitern möchte mit:
public class class1 {
// constructor 1 public class1 (int par1) { ... } // constructor 2 public class1 (int par1, int par2) { ...} }
Code:
meldete NetBeans, dass es keinen Konstrutor class1() gibt.
public class2 extends class1 {
... } Schlaues Kerlchen! Aber was muss ich machen, damit ich eine Unterklasse von class1 erstellen kann? |
AW: [JAVA] Vererbung: Problem mit Konstruktor
Das Problem liegt darin, dass Java versucht, für Class2 automatisch einen parameterlosen Konstruktor bereitzustellen, quasi so:
Code:
Es scheitert daran, dass Class1 keinen parameterlosen Konstruktor besitzt.
public Class2()
{ super(); // Hier scheiterts } Stelle einfach für Class2 einen eigenen Konstruktor bereit und es wird laufen. |
AW: [JAVA] Vererbung: Problem mit Konstruktor
Hallo MrSpock,
wie schaut es aus wenn Du es so ab änderst?
Code:
Die abgeleitete Klasse benötigt einen Konstruktor der Oberklasse.
public class2 extends class1 {
class2() { super(0,0); } ... } ![]() Grüße Klaus |
AW: [JAVA] Vererbung: Problem mit Konstruktor
Ja, das war's. NetBeans benötigt hier den super Aufruf. Solange es keinen gibt, nimmt es an, man wolle den default Konstruktor (ohne Parameter) benutzen. Den gibt es nicht, also meckert der Datenanalysierer.
Ich hatte die Antwort auch ![]() Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz