Da meine erste Frage hier so super schnell beantwortet werden konnte hoffe ich, dass die hier genauso einfach ist. (Wobei ich befürchte, dass mein Vorhaben gar nicht möglich ist.)
Ich habe eine Klasse B, welche von der Klasse A abgeleitet ist. A hat Methoden, die Objekte vom Typ A zurückgeben.
Solche Methoden rufe ich jetzt in B auf. Allerdings geben diese Methoden jetzt nicht Objekte von Typ A, sondern vom Typ B zurück (der ja A ist). Kann das nervige casten von A nach B jetzt irgendwie umgangen werden?
Praktisch so, dass jedes Vorkommen von A in B als B interpretiert wird?
Kurzes Code Beispiel:
Edit:
Die Sache ist nämlich, dass mich das öfters davon abhällt Vererbung zu nutzen. Wenn ich zum Beispiel einen binären, rekursiven Suchbaum programmiere, würde ich den gerne von einer Klasse 'Binärbaum' ableiten. Da der linke und rechte Unterbaum aber hier auch wieder Binärbume sind, müsste ich beim Programmieren des Suchbaumes ständig casten. Da ist es einfacher, wenn ich die Methoden des Binärbaumes anpasse und direkt in Suchbaum schreibe...
Ich habe eine Klasse B, welche von der Klasse A abgeleitet ist. A hat Methoden, die Objekte vom Typ A zurückgeben.
Solche Methoden rufe ich jetzt in B auf. Allerdings geben diese Methoden jetzt nicht Objekte von Typ A, sondern vom Typ B zurück (der ja A ist). Kann das nervige casten von A nach B jetzt irgendwie umgangen werden?
Praktisch so, dass jedes Vorkommen von A in B als B interpretiert wird?
Kurzes Code Beispiel:
Code:
class A
{
private A item;
public A give_item()
{
return item;
}
public void set_item(A item)
{
this.item = item;
}
}
class B extends A
{
public void DoSomething()
{
set_item(new B());
((B) give_item()).DoSomethingElse(); //<- Kann ich mir das irgendwie sparen??
}
public void DoSomethingElse();
{
//...
}
}
Edit:
Die Sache ist nämlich, dass mich das öfters davon abhällt Vererbung zu nutzen. Wenn ich zum Beispiel einen binären, rekursiven Suchbaum programmiere, würde ich den gerne von einer Klasse 'Binärbaum' ableiten. Da der linke und rechte Unterbaum aber hier auch wieder Binärbume sind, müsste ich beim Programmieren des Suchbaumes ständig casten. Da ist es einfacher, wenn ich die Methoden des Binärbaumes anpasse und direkt in Suchbaum schreibe...