В Delphi ключевое слово static используется исключительно для определения методов класса. В Delphi метод класса normal может быть объявлен виртуальным и переопределен в подклассе. Кроме того, Delphi имеет переменную self , аналогичную указателю this в других языках. Однако в методе класса self указывает на класс, в котором метод вызывается вместо экземпляра.
Объявление метода класса static означает:
- Он не может быть переопределен в подклассе
- У него нет указателя self
Это означает, что метод статического класса может обращаться только к членам класса, в котором он определен, в то время как метод обычного класса может получать доступ к переопределенным членам класса в производных классах.
В документации Delphi есть и другие неформальные применения static, обычно ссылающиеся на неизменяемость функций (это слово?). Например, статический массив против динамического массива. Все методы экземпляра в Delphi являются статическими, если не указано иное.