Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Pascal не поддерживает множественного наследования, т. е. каждый класс может иметь не более одного наследника. Для того чтобы объявить класс наследником какого-то другого класса, достаточно указать имя класса-предка при объявлении наследника:
Type
Class2 = Object(Class1)
M: Integer;
End;
Var
Object3: Class2;
При таком объявлении объект Object3 обладает тремя полями - A, V, M и одним методом Nothing(Var Byte).
Методы
Методы объектов обладают единственным отличием от обычных процедур (функций): они, собственно, принадлежат объектам. Следовательно, они обладают доступом к полям именно «своего» объекта. Так как объектов в программе может быть множество, то во избежание дублирования кода каждый метод получает в качестве неявного параметра указатель на объект, для которого он вызван. Данный указатель доступен в теле метода как @Self. Естественно, что объявленный (декларированный) при определении класса метод должен быть определен (дефинирован) в программе. Делается это примерно следующим образом:
Procedure Class1.Nothing(Var K: Byte);
Begin
{body of method}
V:= K;
@Self^.V:= K;
End;
Третья и четвертая строки абсолютно идентичны. В сущности, третья является лишь удобным сокращением второй.
Известно, что все методы класса делятся на обычные (статические) и виртуальные. Любой метод считается статическим, если не указано обратное. Указать же, что метод является виртуальным можно, указав после его декларации в дефиниции класса ключевое слово Virtual:
Type
Class3 = Object
Procedure Nothing(Var K: Byte);
Дата публикования: 2014-10-25; Прочитано: 247 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!