Enumeration bestehen aus anderen Enumerationen
-
Wieso machst du nicht sowas?
public interface IView { void Draw(Graphics g); } public class Rectangle { // ... x, y, width, height } public class EllipseView : IView { private Rectangle m_rectangle; public EllipseView(Rectangle rectangle) { m_rectangle = rectangle; } public void Draw(Graphics g) { // ... } } // usw.
Grüssli
-
Mach ich bereits.
-
Phisherman schrieb:
Mach ich bereits.
Dann verstehe ich nicht, wieso du diese Konstanten benötigst.
Grüssli
-
Wegen der Vorschauklasse. Bevor das vom Benutzer Kreierte explizit als Instanz eines Rechtecks, Kreises etc. gespeichert wird, wird alles in einer anderen Klasse verwaltet. Zum Beispiel, wie viel Punkte bereits vom Benutzer platziert wurden, um zu bestimmen, ob, falls schon mehr als 2 Punkte platziert wurden, er nochmals von einem Spline zu einer Linie wechseln kann.
-
Also moment! Der Benutzer gibt Punkte an und es werden dann Linien gezogen? Wieso speicherst du die Daten dann nicht immer als Spline ab? Wieso kann es dann plötzlich Rechtecke oder Ellipsen geben?
Grüssli
-
Der Benutzer gibt Punkte an, die jeweils die Punkte einer Linie einer Spline etc. definieren. Es kann aber auch sein, dass er damit jeweils den linken oberen und rechten unteren Punkt eines Rechteckes oder einer Ellipse angibt. Schau dir mal die GDI+ Methoden an, dann weißt du, was ich meine.
-
Könntest du etwas genauer darauf eingehen, wie der Benutzer so eine Figur "eingibt"? Setzt er nur Punkte? Oder wählt er z.B. ein Rechteck-Tool aus mit dem er dann Punkte für das Rechteck setzt? Woher weisst du, was der Benutzer genau will?
Vielleicht kannst ja kurz den Ablauf erklären, was passiert, wenn er ein Rechteck, eine Ellipse, eine Linie oder ein Spline eingibt?Grüssli
-
Hi,
Sorry für die späte Antwort. Aber ich habe es nun hinbekommen. Ich hatte nicht gewusst, dass eine Klasse, die von einer Klasse erbt, die wiederum von einer Klasse erbt, auch auf die unterste Klassenhierarchie "downgecastet" werden kann.
Also:
class c erbt von class b erbt von class a
a objectOfClassA; c objectOfClassC; objectOfClassA=objectOfClassC;
Danke für eure Hilfe.
-
Phisherman schrieb:
..., auch auf die unterste Klassenhierarchie "downgecastet" werden kann.
Falsche Richtung. Das nennt man einen Upcast. Eine Vererbungshierarchie wird als verkehrter Baum dargestellt und somit liegt die Wurzel oben. Ein Upcast ist übrigens immer implizit möglich. Wieso sollte es denn auch nicht gehen? Gleiches gilt auch für Interfaces.
Grüssli
-
Merci für die Korrektur.