【发布时间】:2019-11-07 04:50:14
【问题描述】:
我正在读一本我不明白的书,下面提到了关于继承的 3 个问题:
1) 首先,您不能在运行时更改从父类继承的实现,因为继承是在编译时定义的。
2) 其次,通常更糟糕的是,父类通常至少定义其子类的部分物理表示。因为继承将子类暴露于其父类的实现细节,所以人们常说“继承破坏了封装”。
3) 子类的实现与其父类的实现如此紧密地联系在一起,以至于父类实现的任何变化都会迫使子类发生变化。
以上所有点都是在没有任何代码sn-p的情况下提及的,所以我对3点以上的理解有问题。
如果有人可以通过代码示例帮助我理解以上 3 点,以及每个点在代码中的影响和位置,我将不胜感激。
【问题讨论】:
-
Stackoverflow 是针对代码问题的,所以也许您可以通过一些简单的编码实验来尝试自己的示例?你甚至可以通过做得到一些答案。
-
@Kokodoko 我有点不同意,因为有很多关于这样的问题。例如这个怎么样(stackoverflow.com/questions/6308178/…)
-
这是出自哪本书?
-
@WimCoenen 它来自:设计模式,可重用的面向对象软件的元素。它以 pdf 格式在线提供
-
@Kokodoko 我非常感谢您的提示,但在这种情况下,我真的不明白这 3 点来编写一些代码,这就是我在这里问的原因
标签: oop inheritance language-agnostic