关于面向对象的一些理解总结
以下只是个人的一些理解~~~(只对于Java)
我们经常说的万物皆对象,也就是面向对象。我认为面向对象就是参照现实生活设计程序逻辑就是面向对象。以程序映射现实社会,就是面向对象~
简单来说:(以一个人去完成某件事情来举例)
我们都知道现实生活中,每个人的亲生父亲只有一个,体现在Java程序中也就是只能单一继承~!然而你当你想做某件事情的时候你发现,只依靠父亲可能解决不了,还得有一些叔叔阿姨之类的人,那么这些人体现在程序中就是可以实现多个接口。往往这些人呢,能给你的都是一些方法或者建议,具体最后怎么做你还得自己去想,这就是接口中之中抽象的方法,实现接口后你需要去重写抽象方法。而且你还通常会发现这么个问题,就是某些事情,如果你以自己的名义去做会非常困难,而如果以你父亲或者叔叔阿姨的名义去做就会非常顺畅。这体现在程序中也就是向上造型。随着你所干的这件事情的深入,你可能就会发现你父亲给你的有些经验可能已经不那么好用了,你需要自己再去总结一套属于你的经验。那么着体现在程序中就是重写。而且呢,你会发现有的方法呢是需要你有相关资源才可以,而且根据你所掌握的资源不一样得到的结果可能也就不一样。这在程序中呢就是重载~!最后你发现要办成这件事情的过程真是太繁琐了,哪哪都是套路!没有人希望每次去做这件事情都要亲自去处理这些套路!而恰巧你有个朋友没有其他的本事,但是对于这种既定套路非常熟悉~!那么你今后想要再做同样的事情的时候你只需要把相关的东西给你这个朋友就可以啦,他会去帮你处理这中间的一系列问题。(终于解脱了~~~~)而这体现在程序中就是对固定功能的相关代码进行封装。~~~
所以我觉得所谓的面向对象的编程思想,也就是在Java编程中巧妙合理的使用封装,继承与多态,实现将功能模块化。通过不同模块的相互调用来实现最后想要达到的效果的过程就是面向对象编程~~~~(感觉还是有点绕~~~~~~~~~~)
ps:
希望大家能看懂吧。。。。。