C++的继承

来源:互联网 发布:2017淘宝去同款软件 编辑:程序博客网 时间:2024/04/28 00:37


2011-03-23 22:14:00

标签:继承 C++ protected 添加标签>> 

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://bibodeng.blog.51cto.com/2646046/524439 

今天才学到C++的继承,其实以前都有接触到继承的概念。百度上“继承”的解释是:

 继承是指一个对象直接使用另一对象的属性和方法。
 

维基的解释更加详尽:

  

继承可以使得子类别具有父类别的各种属性和方法,而不需要再次编写相同的代码。在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。另外,为子类别追加新的属性和方法也是常见的做法。

有些编程语言支持多重继承,即一个子类别可以同时有多个父类别,比如C++编程语言;而在有些编程语言中,一个子类别只能继承自一个父类别,比如Java编程语言(我知道还有C#也是用接口),这时可以利用接口来实现与多重继承相似的效果。

 

很简单的解释,可以说很精到,如果没有面向对象经验的同学看到,可能百度一下也解决不了问题,别灰心,维基一下吧。~恩,进入正题。

继承是面向对象中一个很重要的概念。而讲到继承的时候我们自然而然就会想起他们的类别。继承的类别大致可以分成三种:

1.单重继承(正如它的名字一样,它是单亲儿)

2.多重继承(有多个祖先类,可以重用它们的代码)

3.重复继承(一个子类有多个父类,其父类中又有相同的祖先类)

这个不难理解,但是实际操作起来可能会发现一些自己不曾注意的问题,所以这里多注点意。

继承的一些原则:

A 继承方式就是继承中保密的最高程度,比如protected型继承,就是父类中的protected程度以下的类成员可以被子类所访问。

还有就是选择了某一种继承方式,就等于把父类的东西归到子类相应访问层次中。

如protected,则从父类中继承的成员变成了子类中protected的成员。

B继承的过程中,如果是protected继承,可以一直延续下去,protected和public型的父类成员可以在子类中进行访问,但是出到类外——如子类的对象则不能访问protected型的父类成员了。(儿子出去外边要替父亲保守秘密)

子类可以按照继承方式对祖先类进访问,比如爷爷辈的,但是一定要保护好父类的隐私,这是做子类的义务。

以上拙见,欢迎拍砖!

至于多重继承我还没有学到,可能会复杂一点。但是只要搞清楚继承的机制,多重继承也还是像单重继承一样。

                                           by bibodeng                  2011.03.23