首先明确C语言是面向过程的语言,Java是面向对象语言。
面向过程考虑的是实际的实现,不支持丰富的面向对象的特性(例如继承、多态),也不允许混合持久化和域逻辑,拥有数据和功能的独立性。面向过程最重要的是模块化的思想方法,把问题分解,然后用函数一步步去实现,使用时一次调用即可。
面向对象包含了面向过程,是更高级的解题思路,面向对象有三个基本特征:封装,继承,多态。隐藏属性、方法或实现细节的过程叫封装,封装即只让可信的类或者对象操作,对不可信的类进行信息隐藏。继承:子类可以使用父类的所有功能,并且对这些功能进行扩展。多态:同种事物,多种状态,即同一个接口名称,但是体现为不同的功能。多态有两种方式:覆盖和重载。覆盖是指子类重新定义父类的方法,而重载是指同一个类同名方法,而这些方法的参数不同(或者是参数个数不同,或者是参数类型不同,或者两种都不同)。