• C++中的面向对象(二)


    1,类之间的基本关系:

        1,继承:

           1,从已存在类细分出来的类和原类之间具有继承关系(is-a);

               1,子类就是一个(is-a)父类;

               2,继承是单向的;

           2,继承的类(子类)拥有原类(父类)的所有属性和行为;

        2,组合:

           1,一些类的存在必然依赖于其它的类,这种关系叫组合;

               1,同生死,共存亡;

           2,组合的类在某一个局部上由其它的类组成;

          

    2,类之间的基本关系:

        1,继承: 

     

        2,组合: 

     

          

    3,类的表示法(生活中的概念用程序语言表达):

        1,原始表达:

     

           1,问题:

               1,图的方式编译器读不懂,更改;

        2,简化:

     

           1,问题:

               1,类之间的继承关系没有表示出来;

               2,继承而来的属性和行为需要重复声明;

                  1,继承从概念上就使得子类拥有父类的一切属性和行为,重复申请没有意义;

        3,改进 1:  

     

           1,问题:

               1,需要使用划线来表示属性和行为,不适合于编程开发;

        4,改进 2:

           1,问题:

               1,使用中文进行属性和行为的描述,绝大多数编译器无法接受;

        5,改进 3:

     

           1,思考:

               1,如何用程序设计中的概念描述类的属性和行为?

                  1,变量和函数;

        6,改进 4:  

     

    4,类的表示法编程实验:

        1,main.cpp 文件:

     1 #include <stdio.h>
     2 
     3 struct Biology {
     4     bool living;
     5 };
     6 
     7 struct Animal : Biology {
     8     bool movable;
     9     void findFood() { }
    10 };
    11 
    12 struct Plant : Biology {
    13     bool growable;
    14 };
    15 
    16 struct Beast : Animal {
    17     void sleep() { }
    18 };
    19 
    20 struct Human : Animal {
    21     void sleep() { }
    22     void work() { }
    23 };
    24 
    25 int main()
    26 {
    27     return 0;
    28 }

        2,编译通过;

       

    5,小结:

        1,类之间可以存在继承关系或组合关系;

        2,继承关系中子类拥有父类的一切属性和行为;

        3,组合关系是类之间整体和部分的关系;

        4,类及类之间的关系可以有不同的表示法;

        5,编译器对类的表示法有具体的要求;

  • 相关阅读:
    Python openpyxl的使用
    Python字典的遍历
    Python3元组的简介和遍历
    tableau绘制饼图
    tableau创建点位地图
    tableau绘制热力地图
    select下拉框分组使用bootstrap select
    css设置div中table水平居中
    sql server的分组排序partition by函数
    document.ready
  • 原文地址:https://www.cnblogs.com/dishengAndziyu/p/10904462.html
Copyright © 2020-2023  润新知