最初,软件开发所使用的思想都是面向过程,面向过程的模式更适合计算机运算,或者说更贴近于人类大脑的理解模式。然而随着时代的发展,软件系统也愈来愈复杂,规模愈来愈大,面向过程的弊端逐渐显现出来,最关键的在于面向过程开发出的软件系统更难维护,代码耦合度较高,当需求变动后,每次都须要修改大量的代码。html
面向对象的出现则解决了这些问题,固然有付出才有回报,相比与面向过程,面向对象思想下的代码也有如下缺点:java
总而言之,面向过程和面向对象并无谁优谁劣,只是适用范围不一样,若是说项目比较简单,也不太须要关心后期变动的问题,面向过程可让你更快的构建项目,若是说项目规模比较大,后期项目会有较长的维护期,那从需求分析开始,你就须要以面向对象的思想来处理。性能
抽象就是以某一个视角来看待这个世界中的东西并将其封装为类,将咱们关心的属性做为类的属性,咱们关心的动做做为方法,而后经过控制其属性和方法是否为私有来控制是否能够被外界访问设计
被继承的类咱们通常称之为超类、基类或父类,而继承父类的类咱们通常称之为子类。继承在设计中通常都是大类到小类的过程,父类和子类的关系为“is a”,例如封装一个动物类,而后经过继承实现一个子类,例如狗,这样狗拥有动物的全部特征,以后即可在子类中继续编写狗特有的属性和方法,父子类的关系可描述为狗是一种动物。htm
注:虽说继承是众多开发语言都具有的功能,但继承也存在很大的代码耦合问题,父类的代码一旦变动则会致使全部子类都会跟着改变,因此开发过程当中尽量的使用接口来代替继承。对象
详细了解可参考《java提升篇(四)-----理解java的三大特性之多态》blog