像继承这样的 OOP 概念是否优化了应用程序的性能?

Does OOP concepts like inheritance optimize perfomance of an application?

OOP 只是组织代码(并在维护、更新应用程序时让您的生活更轻松)还是组织和优化(性能,幕后)?

例如是:

public class Ferrari {
   ..speed;
   ..color;

   ..changeGear(){..change-gear-class-releated-stuff like 8 gears or something}
   ..turnLeft(){...}

同赞:

public class Ferrari extends Car {
   @Override
   ..changeGear(){
   super.changerGear();
   ..change-gear-class-releated-stuff like 8 gears or something
   }

public class Car{
   ..speed;
   ..color;

   ..changeGear(){...}
   ..turnLeft(){...}

为了性能?

由于继承,面向对象可能会阻止某些算法优化。两种算法可能一起工作得特别好,但如果它们隐藏在 OO 接口之后,就失去了利用它们协同作用的可能性。

看看数值库。其中很多(不仅是 60 年代或 70 年代编写的)都不是 OOP。这是有原因的——数值算法作为一组解耦模块比作为具有接口和封装的 OO 层次结构更好地工作。

基本上没有。

与所有事情一样,你必须坚持一个很大的 IT 取决于几乎所有事情,但就执行性能而言,不,继承不会提高性能。

它可以提高整体代码密度,因为共享代码真正在子class之间共享,而不是重复。

在某些语言实现中,继承会降低性能。考虑在 subclass 上搜索方法的运行时。当它第一次查找该方法时,它发现该方法在 subclass 上不存在,然后必须在该方法的相应 superclass 上执行搜索。这些超级 class 搜索肯定会产生一些影响。

但这是一个实现细节。其他系统将在编译时而不是运行时支付该成本,因此没有实际性能成本。

因此,您可以看到它不一定是非黑即白的解决方案。

在编译语言中它不会提高性能,可能只是增加了编译时间。