zoukankan      html  css  js  c++  java
  • 【C++学习笔记】继承与派生基础概念

    面向对象的程序设计主要有四个特点:抽象、封装、继承多态。其中继承是我认为最最重要的一个特性,可以说继承是面向对象的精华所在。

    举一个继承的浅显易懂的例子:假如我们已经有了一个“马”的类,其中成员变量有身长、身高、体重等,还有“吃”、“奔跑”等成员函数,现在我们想创建新类”公马“和”母马“,很明显公马母马具有马的所有特征,我们就不需要重新再写,只需要在原有类的基础上增加”性别“这一新特征,即可创建两个新类。同理,白公马、黑公马可以从公马这一个类派生出来,也就是说它可以继承公马的全部特征而加上颜色这一新特征即可。马是公马的基类,公马是白公马的基类,所以我们可以看出基类、派生类都是相对而言的。

    一、派生类的声明方式

    下面通过刚才举的例子来说明

    class horse
    {
    public:
    	void eat();
    	void run();
    	
    private:
    	float height;
    	float weight;
    };
    class malehorse:public horse
    {
    private:
    	char sex;			//只写新增加的成员
    };
    class wh_mhorse:public malehorse
    {
    private:
    	char color;
    };
    void horse::eat(){
    	cout<<"horse eats grass"<<endl;
    }


    派生类声明方式为

    class  派生类名继承方式  基类名

    二、派生类访问属性

    首先,继承有三种方式:publicprotectedprivate。想必在刚学C++时大家都有这样的疑惑,感觉protected和private属性是一样的,反正都不能从类外访问。到了这里就有区别了:private是”私有“的,不管何种继承方式基类的私有成员都是基类所私有,派生类不可访问;而基类protected成员随继承方式的不同在派生类中担当不同身份。下面详细介绍一下

    (1)共用继承

    基类的共有成员和保护成员在派生类中保持原有访问属性,私有成员扔为基类所有。

    (2)保护继承

    基类的共有成员和保护成员在派生类中成了保护成员。

    (3)私有继承

    基类的共有成员和保护成员在派生类中成了私有成员。

  • 相关阅读:
    为什么整个互联网行业都缺前端工程师?
    css3做的圆特效
    又一个前端的小渣渣诞生了
    返回顶部代码!
    网页动画的十二原则
    JQuery缓冲加载图片插件lazyload.js的使用方法
    关于写手机页面demo的准备工作
    HTML5加载动画
    HTML5加载动画
    正则表达式语法
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3324894.html
Copyright © 2011-2022 走看看