禁止私有虚拟功能背后的原因是什么?
空私有虚拟可以启用低摩擦纯自定义点。
抽象函数具有高摩擦力,受保护的虚拟对象会产生混淆和噪音。
进一步说明:
非虚拟接口模式将接口责任(公共)与提供自定义点(虚拟)分开。
在课堂设计中使用NVI时,我必须保护虚拟机。 可以选择将它们设为私有使得意图更加强大。这意味着后代只能 提供自定义,并且不管是否调用基数都没有混淆,事实上它是被禁止的。一定有充分的理由明确禁止它(诊断:“私有方法不能是多态的”)。
答案 0 :(得分:9)
私有成员意味着派生类无法访问它。
虚拟成员意味着派生类可以覆盖它。
如果某个成员无法访问该成员,则该成员不能覆盖该成员。
折扣嵌套类。