题1:面向对象和面向过程的区别?
回答:举个经典例子:用面向过程写出的程序是一份蛋炒饭,用面向对象写出来的程序是一份盖浇饭。如果喜欢吃蛋炒饭,那么面向过程就够了。如果只喜欢吃鸡蛋,不喜欢吃青菜,那么唯一的方法就是把做好的饭倒掉重做,用面向过程术语描述,就是更改了需求,整个程序都要更改。而盖浇饭的好处就是“菜”“饭”分离,从而提高制作盖浇饭的灵活性,可适应更多的需求。饭不满意就换饭,菜不满意就换菜。用软件工程的专业术语就是"可维护性"比较好,“饭” 和"菜"的耦合度比较低。蛋炒饭将"蛋”“饭"搅和在一起,想换"蛋”"饭"中任何一种都很困难,耦合度很高,以至于"可维护性"比较差。面向对象与面向过程本质区别是:封装与继承。面向对象 = 多态 + 继承 = 先抽象,后具体;面向过程 = 分解问题 + 逻辑为先 = 先细节,再整体。