ich habe eine Frage zur Objektorientierung. Es gibt ja die Access Modifier private, public und protected. Das Schlüsselwort published lasse ich an dieser Stelle mal außer Acht.
Nun sollte es so sein, dass mit "public" deklarierte Eigenschaften und Methoden auch von anderen Klassen aus zugreifbar sind, als "private" nur innerhalb der eigenen Klasse und "protected" in der Klassenhierarchie. Das ist doch in Free Pascal ebenfalls so oder?
Was mich nämlich wundert ist, dass folgender Code fehlerfrei kompiliert werden kann (FPC 2.6.0) und die Anwendung einwandfrei funktioniert:
Code: Alles auswählen
interface
type
TPerson = class
private
FFirstname: String;
FLastname: String;
public
constructor Create;
end;
TAuthor = class(TPerson)
private
FBook: String;
function GetText: String;
public
constructor Create;
property Text: String read GetText;
end;
implementation
constructor TPerson.Create;
begin
FFirstname := 'Stephen';
FLastname := 'King';
end;
constructor TAuthor.Create;
begin
inherited Create;
FBook := 'The Green Mile';
end;
function TAuthor.GetText: String;
begin
Result := FLastname + ', ' + FFirstname + ': ' + FBook;
end;Viele Grüße
Kay