Because the open class will be visible outside of your current assembly, but the inner one will not. When you withdraw from a class, you can limit visibility even more, because in your case it will make the implementation c available to consumers outside of your assembly, which defeats the goal of creating an inner class.
However, you can use composition instead of inheritance.
source share