progs.biz  
Начало>VB.NET>Основы>Урок 31
C#
VB.NET
Visual C++.NET
ASP.NET
Visual C++ 6
WinAPI
C/C++
Delphi
C++ Builder
Java
SQL
PHP
DirectX
Visual Basic 6.0
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

Джон Коннелл. Разработка элементов управления Microsoft .NET на Microsoft Visual Basic .NET
Джон Коннелл. Разработка элементов управления Microsoft .NET на Microsoft Visual Basic .NET
Заказать на Озоне



Яндекс-цитирования

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

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

Вот пример:

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

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

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

Рассылки нашего сайта на Subscribe.Ru
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET new!
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


 
 
Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2008 сайт progs.biz
© 2002-2008 Игорь Алексеев