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