Do you think the only purpose of the class is to be inherited? It it was this way, some classes would never be used! What would be the classes used to create instances? Following you logic, some parent classes with descendants which are never instantiated. Do you feel the absurd of it already?
Just the opposite, most classes used to create instances, are terminal classes, having no descendants. What's wrong with it?
Now, there is no functional difference between sealed or non-sealed terminal classes of any library. We could easily live without "sealed" and have the exact same functionality. "Sealed" is no more then a fool-proof feature. You see, some terminal classes are designed to remain terminal forever. They are used to create instances, but subclassing then just would not make no sense. So, if some "fool" fails to recognize such useless cases (which could be specially indicated in extra sentence in documentation), the compiler error will stop such developer from this useless step. Just an extra convenience and saved developer's time.
(I take "fool" in quotation marks to indicate that this is not a personal characteristics, but a reference to a well-know technical term "fool-proof" meaning "someone who would otherwise be able to do a mistake".)
As to a "real time" example — there are thousands of them. Isn't the use of sealed class reasonable without any examples? In my view, not getting it is nearly the same as not understanding of the notion of "class".
More correct question would be the opposite: why would you think that this or that class needs subclassing? For example,
System.AppDomain
,
http://msdn.microsoft.com/en-us/library/system.appdomain.aspx[
^]. Subclassing is "programming by extension". So, tell us please how would you extend Application Domain and why? Same thing about many other classes which comes with .NET. Every developer creates many classes like that, too. How about you? :-)
—SA