If a class doesn't have any virtual methods, I do not see any way inheriting a class would affect any code that doesn't explicitly refer to the instance as an instance of the subclass i.e.
Subclass obj = new Subclass()
rather than
BaseClass obj = new SubClass()
So therefore, why does sealed
even exist?
If you're not declaring anything as virtual
(which I see no point in doing in a sealed class) all it prevents is things like (for example) a ListViewItem
that stores some extra information about what it represents for code that "knows" that information is there, which has no impact on code that wasn't written with that subclass in mind, unlike an overridden method.