super() und this

Luk10

Top Contributor
Hallo,

folgendes Problem:

Ich hab eine Klasse Zelle und eine Klasse RedCell, welche von Zelle erbt!

Nun will ich folgendes machen:

Java:
public class Zelle {
  RedCell a;
  public Zelle (RedCell c) {
    a = c;
  }

Java:
public RedCell () {
  super(this);
  }

Das lässt sich leider nicht kompilieren ...
Gibt es da eine passable lösung?

Ich möchte ein RedCell-Objekt an Zelle übergeben, jedoch in Zelle kein RedCellObjekt instanzieren ...

Danke, Luk
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Nun will ich folgendes machen:

Java:
public Zelle (RedCell c) {
  RedCell a = c;
  }

Vermutlich willst du das nicht. Das bringt nämlich gar nichts. "RedCell a" wird ja nicht weiter verwendet.

Damit wollte ich andeuten, dass du zwar irgendwas erreichen willst, was einem gedanklichen Modell, einer Struktur oder Vorgang in deinem Kopf entspricht, aber der Code, den du hingeschrieben hast, ist nicht das, was du machen willst, sondern das, was du glaubtest machen zu müssen, um dein Ziel zu erreichen.

Ich möchte ein RedCell-Objekt an Zelle übergeben, jedoch in Zelle kein RedCellObjekt instanzieren ...

Das würde eigentlich so gehen
Java:
class Cell
{
    private RedCell redCell = null;

    public Cell(RedCell r)
    {
        this.redCell = r;
    }
}
aber ob das das ist, was du willst, oder nicht, weiß ich auch nicht ;)
 

Luk10

Top Contributor
Ja, ich habe natürlich die Referenz als Instanzvariable, wollte hier nur nicht so viel schreiben ich ediere das gleich!

Mein Problem ist dass ich folgendes NICHT machen kann:

Java:
public class RedCell {
  public RedCell () {
    super(this);
  }
}
 

Marco13

Top Contributor
Es macht auch nicht so viel Sinn, ein Objekt an sich selbst übergeben zu wollen, während es noch erstellt wird....

Ich nehme an, "Cell" hat einen Konstruktor, dem ein Cell oder RedCell-Objekt übergeben werden kann. Und was sollte mit dem übergebenen Objekt gemacht werden? (Insbesondere, wenn das übergebene Objekt 'this' ist... !?)
 

Luk10

Top Contributor
Ah jetzt entwirrt sich mein Knoten im Hirn ...

Da bin ich eine Sach total falsch angegangen ...
Ich wollte einfach eine Methode, welche in RedCell deklariert ist in Zelle aufrufen ohne dabei ein Objekt in Zelle erstellen zu müssen ...

Danke, Luk :rtfm:
 

LP_SE

Aktives Mitglied
Wieso willst du ein Objekt einer Unterklasse(Klasse, die geerbt hat) an die Oberklasse(Zelle) übergeben?
Das ergibt eigentlich keinen Sinn und ich glaube, dass deßhalb auch der Compilierer meckert
 

Marco13

Top Contributor
Ich wollte einfach eine Methode, welche in RedCell deklariert ist in Zelle aufrufen ohne dabei ein Objekt in Zelle erstellen zu müssen ...

Was sollte diese Methode denn machen? Vielleicht sollte diese Methode
- entweder schon in der Basisklasse (Cell) liegen oder
- nur in RedCell aufgerufen werden.
Man müßte halt genauer wissen, was das alles soll :bahnhof:
 

citizen_erased

Bekanntes Mitglied
Java:
public RedCell () {
    super(this);
  }

das geht meiner meinung nach nicht. wenn im Konstruktor der unterklasse der konstruktor der oberklasse per super() aufgerufen werden soll, dass muss das die erste anweisung im konstruktor der unterklasse sein. allerdings ist das objekt in form von "this" erst nach ende des konstruktors initialisiert.
wie hier schon geschrieben wird, müsstest du mal formulieren, was dein anliegen ist. dann könnte man dir auch entsprechende lösungsansätze vorstellen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A "Super" anwenden Java Basics - Anfänger-Themen 13
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
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
G super operator und incompatible types, simple fehler Java Basics - Anfänger-Themen 8
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

Ähnliche Java Themen

Neue Themen


Oben