java吧 关注:1,251,360贴子:12,738,746

回复:新人请教各位大佬个问题,就是方法重写的意义是什么

只看楼主收藏回复

java的重写
本质上是为了定义接口
而接口,本质上就是一套规范
现在我需要一个直径3cm的螺丝
你可以铅工把它撮出来
你可以数控机床给它加工出来
你甚至可以3D打印做出来
怎么实现我不管,只要你满足我定义的这个“直径3cm”的规范
我就能用它去拧在一个3cm的螺母上
这里,钳工、机床、3D打印都重写了“直径3cm”这个父类方法,拧在螺母里,就是调用这个公共的方法
现在有一个盲人,你把螺丝交到他手里,他根本不知道手里的螺丝是哪一种,但是只要把拧螺丝通用的姿势,也就是相同的方法名,告诉他,他就能用同一个姿势拧好交给他的每一个螺丝
面向接口编程
面向规范制造


IP属地:上海来自Android客户端20楼2022-03-28 00:58
回复
    我个人认为是多肽


    IP属地:湖南来自iPhone客户端21楼2022-03-28 06:59
    回复
      子类太多了,每个子类的方法体内部实现都有差异,你怎么半?难不成你要在父类里提前吧子类都要的具体方法提前写好吗


      IP属地:江苏来自iPhone客户端22楼2022-03-28 07:33
      回复
        子类是为了扩展父类的功能,因为Java对象的多态特性。


        IP属地:江苏来自iPhone客户端23楼2022-03-28 07:36
        回复
          这个需要理解面向对象特性的继承和多态


          IP属地:广东来自Android客户端24楼2022-03-28 09:20
          回复
            我堂堂一个校长,叫个学生去扫地,难道还要我亲自来叫?叫你们主任就行了,实在不行还可以叫你们辅导员嘛,我怎么可能每个学生都认识?(虽然不是一回事,但是可以从这方面理解)


            IP属地:四川来自Android客户端25楼2022-03-29 06:33
            回复
              比如有Dog和Cat继承了Animal类,他们都有eat方法,这个时候你写了一个方法参数要传动物进去,并且调用他们的eat方法,就可以直接写animal.eat,如果A里面没有eat就不能这样写,只能写很多个方法参数分别传C和D


              IP属地:湖南来自iPhone客户端26楼2022-04-09 14:27
              回复