当您在子类中重写某个方法时降低了其可见性时,为什么编译器会给出错误消息?
因为子类的每个实例仍然需要是基类的有效实例(请参见Liskov替换原理)。
如果子类突然失去了基类的一个属性(例如,一个公共方法),那么它将不再是基类的有效替代品。