Hallo,
ich hoffe das hier ist eine Anfängerfrage und ich bin im richtigen Forum. Wenn nicht, bitte einfach verschieben.
Ich möchte verschieden mathematische Berechnungen durchführen. Um flexible zu bleiben möchte ich dazu ein eine Eigene Zahlenklasse verwenden, die später leicht austauschbar sind. Dazu habe ich eine abstrakte Klasse definiert. In dem Beispiel beschränke ich mich darauf, dass die Zahlen addierbar sind. Als Schnittstelle soll die Zahl durch einen String gesetzt oder gelesen werden können. Ich verwende den Namen Number, obwohl es schon eine sogenannte Klasse gibt.
Number.java
Jetzt entsteht aber ein Problem beim ableiten einer neuen Klasse. ZB:
Das Problem ist, dass die add-Methode eigentlich so lauten muss:
Aber die add-Methode der abgeleiteten Klasse soll ja mit NumberDouble arbeiten und nicht mit Number!
Wie kann ich hier anders ansetzen um das zu lösen?
Danke schonmal für die Antworten.
ich hoffe das hier ist eine Anfängerfrage und ich bin im richtigen Forum. Wenn nicht, bitte einfach verschieben.
Ich möchte verschieden mathematische Berechnungen durchführen. Um flexible zu bleiben möchte ich dazu ein eine Eigene Zahlenklasse verwenden, die später leicht austauschbar sind. Dazu habe ich eine abstrakte Klasse definiert. In dem Beispiel beschränke ich mich darauf, dass die Zahlen addierbar sind. Als Schnittstelle soll die Zahl durch einen String gesetzt oder gelesen werden können. Ich verwende den Namen Number, obwohl es schon eine sogenannte Klasse gibt.
Number.java
Java:
package Number;
public abstract class Number {
@Override
abstract public String toString();
abstract public void fromString(String value);
abstract public void add(Number number);
}
Jetzt entsteht aber ein Problem beim ableiten einer neuen Klasse. ZB:
Java:
public class NumberDouble extends Number {
...
@Override
public NumberDouble add(NumberDouble number) {
...
}
}
Das Problem ist, dass die add-Methode eigentlich so lauten muss:
Java:
public NumberDouble add(Number number)
Aber die add-Methode der abgeleiteten Klasse soll ja mit NumberDouble arbeiten und nicht mit Number!
Wie kann ich hier anders ansetzen um das zu lösen?
Danke schonmal für die Antworten.
Zuletzt bearbeitet: