0

我大部分时间都对 OOP(继承)中的术语感到困惑。所以让我今天结束我的战争:)

考虑(与语言无关的)代码:

class rectangle {
...
  void changeLength(int);
  void changeWidth(int);
...
}

class square : public rectangle { ... }

int calculateArea(rectangle){ ... }

现在,当xyz说任何适用(或适用于) onrectangle的操作也适用于squarecalculateArea

4

1 回答 1

0

当 xyz 说由 a 提供的任何操作也由 a提供rectanglesuqare指的是所有三个操作。square提供和。calculateArea_changeLength(ing)changeWidth(int)

当 xyz 说任何适用于 arectangle的操作也适用于 asquare时,他说的是calculateArea(rectangle)也可以称为传入 a 的实例的事实squarecalculateArea然后它本身可以调用该类的公共方法。如果子类中没有覆盖这些方法,它将执行超类的方法。

另见维基百科:继承(计算机科学)

请务必阅读 SLaks 提到的关于圆椭圆问题的 Wikipedia 文章,该文章解决了该原则的一些主要问题。

于 2013-01-17T17:08:45.517 回答