Jon*_*Jon 5 oop encapsulation access-modifiers
人们说继承破坏了封装,我同意。他们说授权更好-尽管授权中的修饰语也可以是公共的/受保护的。
那么,由于超类的公共/受保护修饰符的“敲响”作用暴露于扩展当前子类的任何新类中,因此继承中断封装的真正原因是吗?
是的。由于它使派生类可以访问基类的成员(取决于哪种语言和哪种继承),因此据说它破坏了封装。恕我直言,这仅在您坚持以最严格的条件进行封装时才适用。恕我直言,可以合理地说您接受派生类作为基类的扩展,因此以某种方式相关,并没有真正破坏封装。纯粹主义者会不同意这一点。
看看http://www.ccs.neu.edu/research/demeter/papers/context-journal/node17.html并搜索“breaks”以获得学术解释。