zoukankan      html  css  js  c++  java
  • 【C++】浅谈三大特性之一继承(一)

    一,为什么要引入继承?

    继承是一个非常自然的概念,现实世界中的许多事物也都是具有继承性的。

    例如,爸爸继承爷爷的特性,儿子又继承爸爸的特性等都属于继承的范畴。下面是一个简单的汽车分类图:

    在这个分类图中建立了一种层次结构,最高层是最普遍,最一般的,每一次都比它上一层的更详细,更具体。

    其中把上一层的叫做基类(或父类),紧接着基类的下一层叫做派生类(或子类)。

    所谓继承,就是从先辈处得到属性和特征。

    类的继承就是新类从已有类得到已有的特性,新类被称为派生类,已有类被称为基类。可抽象为派生类是基类的具体化,而基类则是派生类的抽象。

    下面通过一个例子说明为什么要引用继承?

    class Person
    {
    private:
    	int length;//身高
    	int weight;//体重
    	int borndate;//出生日期
    };
    
    class Student
    {
    private:
    	int length;//身高
    	int weight;//体重
    	int borndate;//出生日期
    	
    	int score;//成绩
    	int total;//总分
    	char* school;//学校
    };

    上面定义了两个类,一个人类,一个学生类,仔细观察我们发现人类中具有的属性(即类的成员数据)在学生类中都具有。

    换言之,学生也是人,反过来讲人不一定是学生。就像这样的代码,人类中的属性我们重复定义了两次.

    那么有没有一种方法能避免这种代码重复呢?是的,这就是我们的继承.

    继承机制是面向对象程序设计中避免代码重复的最重要的手段,它允许程序员对已有类进行扩展,增加功能.

    二,继承的定义格式

    eg:

    class Person
    {
    private:
    	int length;//身高
    	int weight;//体重
    	int borndate;//出生日期
    };
    
    class Student:public Person
    {
    private:
    	int score;//成绩
    	int total;//总分
    	char* school;//学校
    };

    创建一个学生对象试试吐舌头

    基类的所以对象都被继承过来了,很棒吧!

    注意:class如果没有显示的给出继承方式,系统默认为private继承,但是最好还是显示定义继承类型,即使是私有继承。

    (struct的默认继承方式则是public。)

    (未完待续......)

    (本文来源于互联网,若有侵权,请联系博主)

  • 相关阅读:
    Python安装mysql-python错误提示python setup.py egg_info
    修改svn默认端口
    python pip下载速度慢的解决方法
    使用mysql自带工具mysqldump进行全库备份以及source命令恢复数据库
    pycharm 中自动补全代码提示前符号 p,m ,c,v, f 是什么意思
    Mysql按条件计数的几种方法
    linux shell 之if-------用if做判断
    在Centos7 上安装SVN
    Nginx配置文件详细说明
    设置文件上传的最大大小
  • 原文地址:https://www.cnblogs.com/qq329914874/p/5998584.html
Copyright © 2011-2022 走看看