Chinaunix首页 | 论坛 | 博客
  • 博客访问: 166362
  • 博文数量: 29
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 806
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-05 10:31
个人简介

share your ideas

文章分类

全部博文(29)

文章存档

2015年(1)

2013年(28)

分类: C/C++

2013-09-01 08:57:51

面向对象程序设计有4个主要特点:抽象、封装、继承和多态性。要较好地进行面向对象程序设计,还必须了解面向对象程序设计另外两个重要特征——继承性和多态性。

本讲主要介绍有关继承的知识,后续将介绍多态性。

面向对象技术强调软件的可重用性(software reusability)。C++语言提供了类的继承机制,解决了软件重用问题。在C++中可重用性是通过继承(inheritance)这一机制来实现的。

继承是C++的一个重要组成部分。一个类中包含了若干数据成员和成员函数。在不同的类中,数据成员和成员函数是不相同的。但有时两个类的内容基本相同或有一部分相同。利用原来声明的类Student作为基础,再加上新的内容即可,以减少重复的工作量。C++提供的继承机制就是为了解决这个问题。

在C++中,所谓“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类(例如“马”)称为“基类(base class )”或“父类(father class )”。新建的类(例如“公马”)称为“派生类(derived class )”或“子类(son class )”。
假设已经声明了一个基类Student,在此基础上通过单继承建立一个派生类Student1:
class Student1: public Student//声明基类是Student
{
   public:
   void display_1( )//新增加的成员函数
   {
      cout<<″age: ″<
      cout<<″address: ″<
   }
   private :
   int age;//新增加的数据成员
   string addr;//新增加的数据成员
};
基类名前面有public的称为“公用继承(public inheritance)”。

声明派生类的一般形式为
   class 派生类名:[继承方式] 基类名{派生类新增加的成员};
继承方式包括: public (公用的),private (私有的)和protected(受保护的),此项是可选的,如果不写此项,则默认为private(私有的)。


一个新类从已有的类那里获得其已有特性,这种现象称为类的继承通过继承,一个新建子类从已有的父类那里获得父类的特性。从另一角度说,从已有的类(父类)产生一个新的子类,称为类的派生类的继承是用已有的类来建立专用类的编程技术。

派生类继承了基类的所有数据成员和成员函数,并可以对成员作必要的增加或调整。一个基类可以派生出多个派生类,每一个派生类又可以作为基类再派生出新的派生类,因此基类和派生类是相对而言的。

以上介绍的是最简单的情况:一个派生类只从一个基类派生,这称为单继承(single inheritance),这种继承关系所形成的层次是一个树形结构。一个派生类不仅可以从一个基类派生,也可以从多个基类派生。一个派生类有两个或多个基类的称为多重继承(multiple inheritance)。关于基类和派生类的关系,可以表述为:派生类是基类的具体化,而基类则是派生类的抽象。
阅读(1955) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~