Абстрактные герметичные классы
Просто небольшой вопрос о С++/cli.
Абстрактные классы имеют абстрактные методы, которые должны быть реализованы производными классами,
закрытые классы не позволяют наследовать.
Итак, почему у нас есть некоторые классы в библиотеке базового класса .NET, которые определены как абстрактные, и вы можете найти много..??!
Ответы
Ответ 1
Он эквивалентен "статическому классу" на языке С#. Язык, который использовался для написания почти всех классов BCL. Все методы должны быть статическими. Объявление его абстрактным и запечатанным препятствует тому, чтобы кто-либо получал уроки из класса и создавал его экземпляр.
Методы класса являются точным эквивалентом свободных функций на языке C и С++. Что-то CLR не поддерживает.
Ответ 2
Они не могут быть абстрагированы и запечатаны, это не имеет смысла
Запечатанный класс нельзя использовать в качестве базового класса. По этой причине он также не может быть абстрактным классом. Запечатанные классы предотвращают деривацию. Поскольку они никогда не могут использоваться в качестве базового класса, некоторые оптимизации во время выполнения могут значительно ускорить вызов закрытых членов класса.
http://msdn.microsoft.com/en-us/library/ms173150.aspx