美文网首页
继承(Inheritance)

继承(Inheritance)

作者: 吃柠檬的鸮 | 来源:发表于2019-05-11 20:07 被阅读0次

当子类继承基类时,子类包含了父基类所有数据及操作的定义。

在 C++ 实践中,继承主要用于两种场合:

  1. 实现继承:子类继承父类的实现代码;
  2. 接口继承,子类仅继承父类的方法名称。

 
优点:

  1. 实现继承通过原封不动地重用基类代码减少了代码量。
  2. 由于继承时编译时声明的,编码者和编译器都可以理解相应地操作并发现错误。
  3. 接口继承可用于程序上增强类地特定 API 的功能,在类没有定义 API 的必要实现时,编译器同样可以侦破。

 
缺点:

  1. 对于实现继承,由于实现子类的代码在父类和子类间延展,要理解其实现变得更加困难。
  2. 子类不能重写父类的非虚函数,当然也就不能修改其实现。
  3. 基类可能定义了一些数据成员,还要区分基类的物理轮廓。

 
结论:

  1. 不要过多使用实现继承,组合通常更合适一些。
  2. 所有继承最好必须时 public 的,如果想私有继承的话,应该采取包含基类实例作为成员的方式作为替代。
  3. 如果该类具有虚函数,其析构函数应该为虚函数。
  4. 限定仅在子类访问的成员函数为 protected ,需要注意的是,数据成员应始终为私有。
  5. 当重定义派生的虚函数时,在派生类中明确声明其为 virtual。遗漏 virtual 并不影响其为虚函数的本质,但阅读者需要检索类的所有祖先以确定该函数是否为虚函数。

相关文章

  • Inheritance (继承)

    A class caninheritmethods, properties, and other characte...

  • 继承(Inheritance)

    值类型(枚举 结构体)不支持继承,只有类支持继承 没有父类的类,称为:基类 Swift没有像OC,Java那样的规...

  • 继承-Inheritance

    继承是面向对象编程的核心概念之一,它允许一个对象得到另一个对象的属性和方法,这使得削减代码和重用代码都变得简单。我...

  • 继承(Inheritance)

    当子类继承基类时,子类包含了父基类所有数据及操作的定义。 在 C++ 实践中,继承主要用于两种场合: 实现继承:子...

  • 虚函数

    虚函数 Inheritance (继承) with virtual functions (虚函数) 非虚函数:继承...

  • kotlin inheritance 继承

    Any 所有类都继承该类,提供默认的三个函数: equals()hashCode()toString()继承声明:...

  • Swift - 继承(Inheritance)

    继承(Inheritance) 值类型(枚举、结构体)不支持继承,只有 类 支持继承 基类:没有父类的类Swift...

  • 13 Inheritance 继承

    一个类可以从另一个类继承方法、属性和其他特征。当一个类从另一个类继承时,继承类称为子类,它继承的类称为超类。继承是...

  • C++中类的组合(BOOLAN教育)

    Inheritance(继承),Composition(复合),Delegation(委托) Compositio...

  • Object-orientation

    Three most important concepts inheritance继承encapsulation封...

网友评论

      本文标题:继承(Inheritance)

      本文链接:https://www.haomeiwen.com/subject/wodfaqtx.html