1.抽象:
将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。
抽象只关注对象的那些属性和行为,并不关注这些行为的具体细节。
例:
学生有姓名,有年龄,有学号,这些都是静态特征,即属性
学生会吃饭,会睡觉,会学习,这些都是动态特征,即行为。
2.封装:
封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口
面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象,可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口。
封装给对象提供了隐藏内部特性和行为的能力,对象提供一些能这被其它对象访问的方法来改变它内部的数据。
3.继承:对父类和方法的复用
继承是从已有类得到继承信息创建新类的过程,继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段.
子类继承父类属性(静态特征)和方法(动态特征),继承必须遵循封装当中的控制访问
例:动物包括爬行动物和哺乳动物,哺乳动物又包括人类。
4.多态:
允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。
允许将子类类型的指针赋值给父类类型的指针。
实现多态,有二种方式,覆盖,重载。
覆盖,是指子类重新定义父类的虚函数的做法。
重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。