Отправляет email-рассылки с помощью сервиса Sendsay

Visual Basic.NET. Уроки

  Все выпуски  

Visual Basic.NET. Уроки


Информационный Канал Subscribe.Ru

Основы VB.NET. Уроки с сайта http://progs.biz

Рассылка №36

Основы VB.NET. Урок 31. Основы VB.NET. Урок 31. Классы без потомков или запрещение наследования.

Полные версии уроков (с картинками) можно найти по адресам
Урок 31. Основы VB.NET. Урок 31. Классы без потомков или запрещение наследования.

Основы VB.NET. Урок 31. Классы без потомков или запрещение наследования

Если мы специально не позаботимся, то от любого нашего класса можно произвести класс-потомок. Если мы хотим этого избежать, то мы должны объявить класс с ключевым словом NotInheritable. Тем самым мы определим наш класс как класс без потомков. И даже если очень захочется, то все равно от такого класса не удастся образовать класс-потомок.

Вот пример:

...
NotInheritable Class Class1
    'Методы, переменные, свойства класса Class1
End Class
Class Class2
    Inherits Class1 'Ошибка!!!
    'Методы, переменные, свойства класса Class2
End Class
 ...

Зачем нужны классы без потомков? Вернее зачем компилятору сообщать о том, что некий класс не может иметь потомков? Причин тут несколько. Одна из причин - это оптимизация кода, связанная с виртуальными функциями. Другая причина - это безопасность. Класс-потомок в принципе может получить доступ к некотрым частям класса-предка, к которым обычным способом (не через класс-потомок) доступа нет, так что запрещая наследование, мы ставим дополнительную защиту нашему классу.

Классы без потомков стоят на одном конце иерархии классов. На другом конце стоит абстрактные классы (см. урок 14), которые как раз и используются для образования от них классов-потомков.

Наверх
Рассылки сайта progs.biz:
Рассылки Subscribe.Ru
Уроки по SQL Server

Уроки для начинающих по SQL Server. Создание баз данных, администрирование, программирование, использование языка T-SQL, написание клиентских приложений.


Copyright Алексеев Игорь, 2003

Copyright сайт progs.biz, 2003



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное