继承是否会增加耦合?

Job*_*ose 5 c++ java oop

我是面向对象编程技术的新手,据我所知,耦合是创建可维护,可重用代码的最大障碍.

当我们从基类继承几个子类时,子类是否变得依赖于基类?如果我必须在以后删除基类怎么办?这不会打破子类中的代码吗?

Vin*_*igh 6

是.这被称为子类耦合:

描述孩子与其父母之间的关系.

与所有耦合一样,影响一个单元可能会影响依赖它的单元.

在这种情况下,删除父类会影响它的所有子类,因为删除超类型时会发生编译器错误.

这意味着子类与超类型耦合.


ric*_*din 5

父类与其子类之间的关系称为子类依赖实现依赖。与其他类型的依赖关系一样,实现依赖关系会在两个类之间产生一些耦合。请记住,架构中的类之间的耦合必须最小化。

正如设计模式一书中所述,减少这种耦合的唯一方法是使用以下原则:

对接口进行编程,而不是对实现进行编程。

那么,如果必须使用继承,最好的方法是使用抽象类作为父类,并让子类仅重写抽象方法。

在具体类之间使用继承也称为白盒代码重用

父类通常至少定义其子类的物理表示的一部分。由于继承将子类暴露给其父类的实现细节,因此人们常说“继承破坏了封装”。

然后,使用黑盒代码重用,即对象组合,它不会破坏封装并最大限度地减少子类化耦合。