浅谈Java面向对象
前言
详细教程可参考Java面向对象:对象的概念及面向对象的三个基本特征,我就粗略介绍下我比较认为的重点。
面向对象的三大核心特性
可重用性:代码重复使用,减少代码量,提高开发效率。继承、封装和多态都围绕这个核心
可扩展性:新的功能可以很容易地加入到系统中来,便于软件的修改。
可管理性:能够将功能与数据结合,方便管理
继承性
Java只支持单继承
例如定义一个语文老师类和数学老师类,如果不采用继承方式,那么两个类中需要定义的属性和方法如图:
语文老师类和数学老师类中的许多属性和方法相同,这些相同的属性和方法可以提取出放在一个父类中,这个父类用于被语文老师类和数学老师类继承。当然父类还可以继承别的类,如图所示:
总结上图的继承关系,可以用概括的树形关系来表示,如图所示:
从图中可以看出,学校主要人员是一个大的类别,老师和学生是学校主要人员的两个子类,而老师又可以分为语文老师和数学老师两个子类,学生也可以分为班长和组长两个子类。
使用这种层次形的分类方式,是为了将多个类的通用属性和方法提取出来,放在它们的父类中,然后只需要在子类中各自定义自己独有的属性和方法,并以继承的形式在父类中获取它们的通用属性和方法即可。
封装性
封装是将代码及其处理的数据绑定在一起的一种编程机制。封装的目的在于保护信息
Java语言的基本封装单位是类,类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制。
多态性
即”一个接口,多个方法”。多态性允许一个接口被多个同类使用,弥补了单继承的不足。多态概念可以用树形关系来表示,如图所示: