面向对象

什么是面向对象?

答:就是在开发程序时,不是由调用者来完成所有功能的实现,而是把这些实现交给不同对象分别实现,最后由调用者调用这些对象的相应方法完成程序的开发。

      比如:老板可以在前台接电话,可以打印文档,可以完成客户钱款的收支,可以在门口负责安全防护,指挥进出的车辆,这些事虽然可以老板一个人做,但是

     会非常累,而且效率低下。如果,这个场景在代码中体现就是老板类中有不同的方法,分别代表了接打电话,打印文档,等等。这个会导致老板这个类代码非常

     多,非常乱。面向对象就是先设计前台类,这个类中有接打电话的方法,打印文档方法,再设计财务人员类,负责钱款的收支等等,最后老板类中只要调用前台

    和财务人员类的相应方法,就可完成功能。把代码分散到不同的类后,老板类中的代码就非常少,非常清晰。在现实中,就是老板雇佣了前台人员,财务人员,

    安保人员等,老板就可以坐下喝茶了。

什么是抽象?

答:抽象就是不具体,比如说一个人厉害,可是听的人不知道这个人怎么厉害,是打架厉害还是学习厉害,就不知道了,反正就是属于厉害的那一类人。

       抽象就是把一些对象中都有的共同点找出来的过程,在代码中把这些共同点写到一个类中,再给这个类起一个名字,这就是类,这些对象就是类的

       实例。抽象有时指的是结果,比如说介绍一个人介绍的很不具体,抽象有时指过程,就是在具体对象中抽取出来一个能代表所有对象的类的过程就是抽象。

    所以,抽象的根本就是:不具体。抽象的目的是:化繁为简,降低复杂度。只保留共性的,裁剪掉无关的细节。

什么是封装?

答:封装是面向对象三大特点的第一个,封装就是隐藏,隐藏什么呢?隐藏不想让人看到的,如:隐私,机密,繁杂的细节等。

       一个人的年龄和薪水是隐私,不会让人直接知道的,所以要封装,然后通过一个方法给你一个结果,这个结果就看提供者的心情了。

       一个机关,一个团体都有自己的机密,这些机密也不能对外暴露,通过发言人对外提供,这个也要看发言人怎么讲了。

       我们去饭店吃饭,不会坐在厨师身边,也看不到制作的过程,饭店经营者不想让客户看到这些细节,而顾客也不想看到这些乱乱的操作

               所以,饭店会把客人用餐的地方和厨房隔开,这就是封装。

什么是继承?

答:自己没有的,通过继承父类而获取父类的属性或方法,甚至只继承到了父类的一个身份。

      继承破坏了封装,因为一个子类继承了父类后,就获取到了一些本是父类的东西,而这些东西不是子类是无法获取到的,这在一定程度上破坏了封装。

      继承带来的好处就是,可以省掉好多代码,如果一个类的子类越多,越明显。比如,一个画图形的程序,在父类中设计好一个画线段的方法,所有子

             类就不用再写这个方法,直接用它,就像自己的方法一样。

什么是多态?

答:多态就是父类或接口声明的一个变量在指向不同子类或实现类时,调用同一个方法时,表现结果不同。

       多态建立的前提是继承和实现,有了这些才有了多态。比如,有一个动物类,它有一个方法叫:说话,它有一些子类比如,狗,猫等,用动物类声明一个

              变量指向狗,调用这个对象的“说话”这个方法时,表现出来是“汪汪汪”,当这个变量重新指向猫时,调用这个对象的“说话”方法时,表现出来就是“喵喵”

原文地址:https://www.cnblogs.com/java-ty/p/11606197.html