一、进阶面向对象上面向对象的意义在于将日常生活中习惯的思维方式引入程序设计中将需求中的概念直观的映射到解决方案中以模块为中心构建可复用的软件系统提高软件产品的可维护性和可扩展性类和对象是面向对象中的两个基本概念类∶指的是一类事物是一个抽象的概念对象∶指的是属于某个类的具体实体类是一种模型这种模型可以创建出不同的对象实体对象实体是类模型的一个具体实例注一个类可以有很多对象而一个对象必然属于某个类。生活中的类和对象类和对象的意义类用于抽象的描述一类事物所特有的属性和行为如电脑拥有CPU内存和硬盘并且可以开机和运行程序对象是具体的事物拥有所属类中描述的一切属性和行为如每一只老虎都有不同的体重不同食量以及不同的性情二、小结上面向对象是当今软件开发中的重要方法类和对象是面向对象理论中的基本概念类和对象均来源于日常生活中每个类可以有多个对象每个对象必然属于某个类三、进阶面向对象下类之间的基本关系继承从已存在类细分出来的类和原类之间具有继承关系 is-a )继承的类子类拥有原类父类的所有属性和行为组合一些类的存在必须依赖于其它的类这种关系叫组合组合的类在某一个局部上由其它的类组成类之间的基本关系 -- 继承惠普电脑和苹果电脑都继承于电脑具备电脑的所有特征。类之间的基本关系 -- 组合类的表示法类的表示法 -- 简化类的表示法 -- 改进1类的表示法 -- 改进2类的表示法 -- 改进3这有点代码的味道了那么如何用程序设计中的概念描述类的属性和行为?下面做最终改进。类的表示法 -- 改进4下面把上面表示方法写成代码看看编译器会不会报错吧。12345678910111213141516171819202122232425262728#include stdio.hstructBiology {boolliving;};structAnimal : Biology {boolmovable;voidfindFood() { }};structPlant : Biology {boolgrowable;};structBeast : Animal {voidsleep() { }};structHuman : Animal {voidsleep() { }voidwork() { }};intmain(){return0;}下面为输出结果可以看到编译器并没有报错也就证明面向对象那种表示方法是可以的。四、小结下类之间可以存在继承关系或组合关系继承关系中子类拥有父类的一切属性和行为组合关系是类之间整体和部分的关系类及类之间的关系可以有不同的表示法编译器对类的表示法有具体的要求