ich bastel mir gerade eine Klasse. Diese soll abstrakt sein, was nach meinem Verständnis bedeutet, dass ich von ihr keine Objekte erstellen kann. Sie soll als Basisklasse für konkretere Klassen dienen:
Code: Alles auswählen
{TBuchung: Abstrakte Klasse, von der später die anderen Buchungsklassen
erben und die für die Collection verwendet wird, welche die Buchungen dann
hält}
EBuchungsart = (baEinnahme, baAusgabe);
EZahlungsart = (zaAbbuchung, zaUeberweisung, zaDauerauftrag, zaBar,
zaAbhebung);
EZahlungsperiode = (zpMonat, zpZweiMonate, zpQuartal, zpHalbjahr, zpJahr);
TBuchung = class
public
procedure dummyProc; virtual; abstract;
protected
FName : String; // Bezeichnung der Buchung
FBuchungsart : EBuchungsart;
FKategorie : String; // Kategorie ist Sortieroption für Buchungen
FZahlungsart : EZahlungsart;
FZahlungsperiode : EZahlungsperiode;
FBemerkungen : String;
end;
Die Dummy-Methode habe ich auch nur eingesetzt, weil ich nicht weiß, wie ich sonst die Klasse abstrakt machen soll, abstract kann ja nur auf Methoden und nicht auf Klassen angewendet werden. Das Blöde in meinem Fall ist, dass die Klasse ein reiner Datencontainer (so eine Art Pojo) sein soll und die Methode ansonsten überflüssig ist.
Wie dem auch sei: Komischerweise kann ich von meiner abstrakten Klasse Objekte erstellen. Ich kriege lediglich eine Compilerwarnung.
mfk3test.pas(44,31) Warning: Constructing a class "TBuchung" with abstract method "dummyProc"
Und das ist alles. Was mache ich falsch? Habe jetzt eine Weile im Internet gestöbert, aber keine Lösungen gefunden.