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,编译器对类的表示法有具体的要求;

猜你喜欢

转载自www.cnblogs.com/dishengAndziyu/p/10904982.html