Абстрактные герметичные классы

Просто небольшой вопрос о С++/cli. Абстрактные классы имеют абстрактные методы, которые должны быть реализованы производными классами, закрытые классы не позволяют наследовать.

Итак, почему у нас есть некоторые классы в библиотеке базового класса .NET, которые определены как абстрактные, и вы можете найти много..??!

Ответ 1

Он эквивалентен "статическому классу" на языке С#. Язык, который использовался для написания почти всех классов BCL. Все методы должны быть статическими. Объявление его абстрактным и запечатанным препятствует тому, чтобы кто-либо получал уроки из класса и создавал его экземпляр.

Методы класса являются точным эквивалентом свободных функций на языке C и С++. Что-то CLR не поддерживает.

Ответ 2

Они не могут быть абстрагированы и запечатаны, это не имеет смысла

Запечатанный класс нельзя использовать в качестве базового класса. По этой причине он также не может быть абстрактным классом. Запечатанные классы предотвращают деривацию. Поскольку они никогда не могут использоваться в качестве базового класса, некоторые оптимизации во время выполнения могут значительно ускорить вызов закрытых членов класса.

http://msdn.microsoft.com/en-us/library/ms173150.aspx