super operator und incompatible types, simple fehler

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo, hier die erste Klasse

Code:
class X {}

class Y extends X {}

class Test {
 public static void main(String[] args) {
 X x = new X();
 Y y = new Y();
 X a = new Y();
 Y b = new X();
 }
 }

kann mit dem fehler "incompatible types " zwar was anfangen, da er wohl in nach line 19 den Y Wert sucht und keinen findet aber wie ich das Problem löse ist mir vollkommen unklar.


hier eine unterklasse, bezieht sich aber nicht auf die x hier drüber :p



Code:
class Y extends X {
 
 int b;
 

 Y(int b) {
 super(a);
 this.b = b;

 
 }
 }

was ist am super falsch ? hatte mal eine ausgeben methode und dort auch mit super gearbeitet. macht ja nichts anderes als methode und attribute in einer unterklasse aufzurufen, sofern ich das richtig verstanden habe.


würd mich freuen wenn ihr mir die fehler beseitigen könntet :)
 

Templon

Bekanntes Mitglied
Anonymous hat gesagt.:
Code:
class Y extends X {
 
 int b;
 

 Y(int b) {
 super(a);
 this.b = b;

 }
 }

was ist am super falsch ? hatte mal eine ausgeben methode und dort auch mit super gearbeitet. macht ja nichts anderes als methode und attribute in einer unterklasse aufzurufen, sofern ich das richtig verstanden habe.

1. Sehe ich hier nirgends eine Variable mit dem Namen "a". Das könnte das Problem sein.
2. Muss der Konstruktor der Klasse X eine Variable von dem Typ welcher "a" hat annehmen können.

EDIT:

Anonymous hat gesagt.:
Hallo, hier die erste Klasse

Code:
class X {}

class Y extends X {}

class Test {
 public static void main(String[] args) {
 X x = new X();
 Y y = new Y();
 X a = new Y();
 Y b = new X();
 }
 }

kann mit dem fehler "incompatible types " zwar was anfangen, da er wohl in nach line 19 den Y Wert sucht und keinen findet aber wie ich das Problem löse ist mir vollkommen unklar.

"da er wohl in nach line 19 den Y Wert sucht und keinen findet" Was du hiermit meinst ist mir nicht klar =)

Naja lösen kannst du das nicht. Eine Referenz vom Typ "Y" kann nicht auf ein Objekt vom Typ "X" zeigen. Darum auch der Compiler Error "incompatible types"
 

Zed

Bekanntes Mitglied
super(a); ruft den Konstruktor von X auf und gibt den Parameter a über. Keine Ahnung was a in deinem Fall ist. Wo ist a deklariert?


X a = new Y(); ?

X kann doch nicht ein Object von Y sein!!
 
G

Guest

Gast
hier nochmal der vollständige code :


Code:
1 class X {
2
3 int a;
4
5 X(int a) {
6 this.a = a;
7 }
8 }
9
10 class Y extends X {
11
12 int b;
13
2
14 Y(int b) {
15 this.b = b;
16 super(a);
17 }
18 }


frage ist wie ich das super schreiben muss und wohin ich es schreiben muss damit an die Classe Y a übergeben wird ?
 

Zed

Bekanntes Mitglied
Dein Problem ist das die Klasse Y a nicht kennt.

Y(int b) das ist der Konstruktor für Y. Wenn du new Y(3) machst dann ist in Y b = 3

wenn du aber super(b) scheiben würdest dann würde in X die Variable a mit 3 gesetzt.
 
G

Guest

Gast
@zed

danke erstmal für deine mühe. ich fasse nochmal für mein verständnis zusammen.

sofern ich in der class y mit dem konstruktor b einen wert zuteile und dann super(b) in der class x schreiben würde dann würde der werd dieser klasse übergeben werden. (soweit hatte ich das ja auch schon verstanden)


nur will ich aus der class x durch den operator super der class y die variable a übergeben.


Alles wäre toll, wenn nicht der Fehler "call to super must be first statement in constructor" kommen würde
aber selbst wenn es an erster stelle im konstruktor steht kommt der fehler.


darum würde es mich freuen wenn mir jemand sagen könnte wie ich mit dem operator super in der classe y umzugehen habe,damit dieser die variable a übergibt.


danke
 

Ebenius

Top Contributor
Also was Du da schreibst ergibt wenig Sinn. Die Fehlermeldung "call to super must be first statement in constructor" sagt Dir, wie Du richtig annimmst, dass vor dem super-Aufruf nichts anderes passieren darf. Wenn Du also "super(a);" in die erste Zeile des Konstruktors schreibst, dann kommt nicht der selbe Fehler, sondern ein anderer: "a cannot be resolved".

Dies sagt Dir: Im Konstrukter der Klasse 'Y' ist das Symbol "a" nicht verfügbar. Ist doch logisch, der Konstruktor bekommt ja nur "b" als Parameter. Vielleicht willst Du ja sowas schreiben:
Code:
class Y extends X {

  int b; 
 
  Y(int a, int b) { 
    super(a); 
    this.b = b; 
  } 
}

Oder sowas:
Code:
class Y extends X {

  int b; 
 
  Y(int b) { 
    super(b); 
    this.b = b; 
  } 
}

Oder sowas:
Code:
class Y extends X {

  int b; 
 
  Y(int b) { 
    super(-1); 
    this.b = b; 
  } 
}

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
mrStudent <? extends T> und <? super T> Java Basics - Anfänger-Themen 1
Say super.methode / super.variable und super(variable) Java Basics - Anfänger-Themen 2
M Super(); Java Basics - Anfänger-Themen 1
districon Super-Stichwort/ Vererbung Java Basics - Anfänger-Themen 3
N extends und super vs new object Java Basics - Anfänger-Themen 4
CptK Vererbung Attributtyp in Super-Klasse noch nicht festlegen Java Basics - Anfänger-Themen 1
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
Queiser Super boolean Java Basics - Anfänger-Themen 11
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
B super vs. this Java Basics - Anfänger-Themen 24
M Was macht super (...)? Java Basics - Anfänger-Themen 1
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
Henri Aufruf von getX() und getY() aus der Super klasse Objekt() Java Basics - Anfänger-Themen 3
N Frage zu this, super und return Java Basics - Anfänger-Themen 13
E this() / super() Java Basics - Anfänger-Themen 7
T super Java Basics - Anfänger-Themen 3
G funktionen der super-klasse von der super-klasse Java Basics - Anfänger-Themen 6
O Vererbung this innerhalb von super Java Basics - Anfänger-Themen 7
X Frage zu Sub/Super Klassen Java Basics - Anfänger-Themen 7
V Vererbung (wie) kann man eine 'super'-Methode auf ein Objekt anwenden ? Java Basics - Anfänger-Themen 6
E Erste Schritte <? super Unterklasse> Return-Typ darf nicht vom Wildcard-Typ sein Java Basics - Anfänger-Themen 5
E Erste Schritte Lower Bounded Wildcards <? super Integer> Java Basics - Anfänger-Themen 1
K Vererbung (super) Java Basics - Anfänger-Themen 2
C Super und Unterklassen Java Basics - Anfänger-Themen 6
Avarion Getter von Super-Klasse funktioniert nicht Java Basics - Anfänger-Themen 10
I Verständnisfrage zu BridgePattern, Verwedung von super() Java Basics - Anfänger-Themen 4
llabusch Vererbung Super Konstruktor Java Basics - Anfänger-Themen 5
Z Super einfache Frage For-Schleife im Detail Java Basics - Anfänger-Themen 3
vandread Java Wildcards - Wann super wann extends? Java Basics - Anfänger-Themen 2
A Super Klasse Java Basics - Anfänger-Themen 3
O OOP super aufruf 2 objekte? Java Basics - Anfänger-Themen 3
S super() im Konstruktor Java Basics - Anfänger-Themen 12
L Erste Schritte Super Constructor mit Array - Liste? Java Basics - Anfänger-Themen 15
A Shallow copy .super.clone() Java Basics - Anfänger-Themen 2
P Vererbung super() ohne Parameter Java Basics - Anfänger-Themen 2
D Super und Sub-Klassen Java Basics - Anfänger-Themen 2
D super.tostring Java Basics - Anfänger-Themen 8
A Super-Anweisung in abstrakter Klasse Java Basics - Anfänger-Themen 12
K Überschreiben einer "super.super"-Methode Java Basics - Anfänger-Themen 6
Luk10 super() und this Java Basics - Anfänger-Themen 7
S super() aufruf ausgabe Java Basics - Anfänger-Themen 3
L Frage zu Generics: "super" Java Basics - Anfänger-Themen 16
S super.paint() Java Basics - Anfänger-Themen 4
G Vererbung, Konstruktoranweisungen VOR super() Java Basics - Anfänger-Themen 4
G Variablen initialisieren vor super() Java Basics - Anfänger-Themen 8
H Konstruktoren – super! Java Basics - Anfänger-Themen 3
A Am Buch lesen, nun brauch ich eure Hilfe um mir super() zu erklären Java Basics - Anfänger-Themen 4
J Problem mit super Java Basics - Anfänger-Themen 10
kulturfenster super.paintComponent(g); Java Basics - Anfänger-Themen 3
J abstrakte klasse und methode super Java Basics - Anfänger-Themen 2
B super methode aufrufen und ergänzen? Java Basics - Anfänger-Themen 5
G Innerhalb von Runnable auf super. zugreifen? Java Basics - Anfänger-Themen 3
X this dynamisch, super statisch? Java Basics - Anfänger-Themen 3
A Frage zu super, abstracte Klassen und Kapselung Java Basics - Anfänger-Themen 3
G frage zu vererbung (super) Java Basics - Anfänger-Themen 10
G super(null) Java Basics - Anfänger-Themen 7
F Der "super" Ausdruck Java Basics - Anfänger-Themen 4
S was macht super() ? Java Basics - Anfänger-Themen 7
J Konstruktor der Oberklasse und super Java Basics - Anfänger-Themen 1
W super.methode Java Basics - Anfänger-Themen 2
G neues String Array in super() übergeben Java Basics - Anfänger-Themen 3
I call to super must be first statement in constructor Java Basics - Anfänger-Themen 3
K java syntax: wofür steht super(screen)? Java Basics - Anfänger-Themen 5
S Verwendung von Super Java Basics - Anfänger-Themen 7
P super an methode übergeben Java Basics - Anfänger-Themen 8
S supertyp steht ohne super in hierachy - eclipse Java Basics - Anfänger-Themen 4
U super-Konstruktor Aufrufen mit Object, dass Exception wirft Java Basics - Anfänger-Themen 2
pkelod Binäre Darstellung Bitwise-Operator Java Basics - Anfänger-Themen 10
U Wie genau funktioniert der ! Operator Java Basics - Anfänger-Themen 3
C ?: Operator Java Basics - Anfänger-Themen 14
L Java operator % Java Basics - Anfänger-Themen 3
KogoroMori21 Erklärung zum Ternären Operator Java Basics - Anfänger-Themen 4
B Modulo-Operator anhand eines Beispieles erklären Java Basics - Anfänger-Themen 7
C Ternärer Operator mit Strings Java Basics - Anfänger-Themen 3
L Modulus Operator Java Basics - Anfänger-Themen 3
A Zuweisungen und -- operator; Java Basics - Anfänger-Themen 2
H << Operator Java Basics - Anfänger-Themen 7
F RegEx "+" nur als Zeichen, nicht als Operator oder Sonstiges Java Basics - Anfänger-Themen 2
H Operatoren Der bedingte Operator ? : ; Java Basics - Anfänger-Themen 2
J new-Operator Java Basics - Anfänger-Themen 6
H this operator - was ist das? Java Basics - Anfänger-Themen 2
R Operatoren Bad operand types for binary operator Java Basics - Anfänger-Themen 4
O Bedingter Operator eine Frage! Java Basics - Anfänger-Themen 10
O Erste Schritte x*y*z mit Shift Operator moeglich? Java Basics - Anfänger-Themen 15
L Operatoren error: bad operand types for binary operator && Java Basics - Anfänger-Themen 8
E Methoden in new-Operator Methode in geschweifter Klammer Java Basics - Anfänger-Themen 3
I bad operand types for binary operator > Java Basics - Anfänger-Themen 5
D Conditional Operator ?: Java Basics - Anfänger-Themen 3
L Operatoren Übungsklausuraufgabe, unbekannter Operator Java Basics - Anfänger-Themen 13
H Operatoren Fehler bad operand types for binary operator Java Basics - Anfänger-Themen 7
snipesss Operator "-" is undefined Java Basics - Anfänger-Themen 1
F Operatoren If mit variabelem Operator Java Basics - Anfänger-Themen 2
J instanceof Operator Java Basics - Anfänger-Themen 3
K Operatoren The Operator * is undefined for the argument type(s) double, String Java Basics - Anfänger-Themen 4
J Operator * benutzen Java Basics - Anfänger-Themen 3
DeVolt Operatoren Frage zum new-Operator Java Basics - Anfänger-Themen 4
N Methoden Modulo Operator Java Basics - Anfänger-Themen 1
S Operatoren ! Operator Java Basics - Anfänger-Themen 4
O Operator undefined Java Basics - Anfänger-Themen 2
N this-Operator Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben