会自动隐藏并且能够被重写，因此，一些倾向于定义②的人会将信息隐藏（information hiding）作为一个单独的定义③列举出来。在使用类的大多面向对象的编程语言中，虽然封装是被支持的，但是仍有其他替代品可以选择。
封装和继承.《Design Patterns》的作者们曾经大篇幅地讨论封装和继承的矛盾。根据他们自身的经验，设计师们滥用继承。他们认为继承将破坏封装，考虑父类的实现细节将暴露给子类。父类的内部实现对于子类来说是不透明的（实现一个子类时， 你需要了解父类的实现