面向对象的意义在于:
其中类和对象是面向对象中的两个基本概念
-类:指的一类事物,里面包括不同对象实体,是一个抽象的概念,比如:程序语言
-对象:指的是类里的具体实体,比如:程序语言(类)->java(对象)、C#(对象)等
类
-类用于抽象的描述一类事物所共有的属性和行为
比如:
电脑,都拥有CPU/主板/内存/硬盘(共有属性),并且可以运行程序(共有行为)
对象
-对象指类里的具体事物,并且拥有描述类中的一切共有属性和行为
比如:
神舟电脑G50-F5型号,CPU是酷睿i5,内存8G,硬盘1TB等
神舟电脑G60-F7型号,CPU是酷睿i7,内存16G,硬盘1TB+128GB(固态硬盘)等
总结:
类与类之间的关系
继承
-父类和子类之间具有继承关系,比如:车(父类)包括了汽车(子类)
可以这么理解,汽车一定是车,但是车不一定是汽车
-继承的子类拥有父类的所有属性和行为
组合
-一些类的存在必须依赖于其它的类,这种关系叫组合,比如:电脑(类)包括了CPU(类)等
-组合的类在某个局部上由其它的类组成
继承实例
以现实生活中的生物类为例:
如上图,在C++中,又如何通过程序来表达出来呢?
在C++中,通过struct表达类,通过:表达继承,所以可以将上图改进为:
又通过变量表达属性,通过函数表达行为.
最终将生活中的例子体现在C++代码中:
#include <stdio.h>
struct Biology { //生物类
bool living;
};
struct Animal : Biology { //动物类继承于: 生物类
bool movable;
void findFood() { }
};
struct Plant : Biology { //植物类继承于: 生物类
bool growable;
};
struct Beast : Animal { //禽兽继承于: 动物类
void sleep() { }
};
struct Human : Animal { //人类继承于: 动物类
void sleep()
{
printf("I'm sleeping ...\n");
}
void work() { }
};
int main()
{
Human ZhangSan; //创建对象
ZhangSan.sleep();
return 0;
}
未完待续,下章学习类与封装