zoukankan      html  css  js  c++  java
  • 147 01 Android 零基础入门 02 Java面向对象 07 Java多态 05 接口(重点)05 关于多接口中重名默认方法处理的解决方案

    147 01 Android 零基础入门 02 Java面向对象 07 Java多态 05 接口(重点)05 关于多接口中重名默认方法处理的解决方案

    **本文知识点:关于多接口中重名默认方法处理的解决方案 **

    说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进行了截图记录,没有对截图步骤进行详细的文字说明(后面博主时间充裕了,会对目前的博客编辑修改,补充上详细的文字说明);有些步骤和相关知识点缺乏文字描述,可能会难以理解。读者如有不明之处,欢迎博客私信或者微信(本人微信在博客下方的“关于博主”处)与本人交流,共同进步

    关于多接口中重名默认方法处理的解决方案

    Java中,一个类可以实现多个接口

    Java中,一个类可以实现多个接口:只需要在接口名后添加逗号,再写上新接口的名称即可。
    mark

    比如新智能手表不仅可以上网,也可以拍照了。
    mark
    mark

    多接口中重名默认方法处理的解决方案

    INet接口中存在一个无参无返回值的默认方法connection()
    mark
    测试类中调用INet接口中的默认方法connection()
    mark

    在IPhoto接口中也增加一个名叫connection()的默认方法
    mark

    这时,接口的实现类(子类)就会报错了mark

    报错的原因是:实现类不知道该实现IPhoto接口还是INet接口的connection(),因为这两个接口都connection()默认方法,并且名字完全一样,重名了
    mark

    解决这种多接口存在重名默认方法,实现类报错的方案:
    在实现类中定义实现类自己专属的connection()方法,即:重写connection方法
    mark
    实现类中有了connection()方法之后,就不会再报错了

    回到测试类中,测试,再次调用connection方法时,就调用的是实现类中自己的connection方法了
    mark
    mark

    对一个类而言,可以在继承自己父类的同时,还实现其他的接口,并且可以实现多个接口
    mark

    注意:接口的实现,要给放在继承之后
    mark
    mark
    即:作为一个子类,它依然继承自唯一父类,但是可以同时实现若干个接口
    mark

    在实现多个接口时,一定注意要实现接口中待重写的方法。否则,这个类就必须是抽象类。
    mark

    如前所述,当多个接口中都有相同名称的默认方法时,作为实现类就不知道该实现哪个默认方法了,只能自己重写默认方法。

    子类继承的父类和实现的多个接口都存在重名方法的情况

    but,如果我的类继承自父类
    mark

    并同时实现2个接口的情况下,
    mark

    并且父类和2个接口中都有名叫connection的方法。此时,子类(实现类)是否具有分辨connection方法的能力呢?
    mark

    父类中的connection方法:
    mark

    子类没有重写connection方法的情况下,也并没有任何报错提示
    mark

    测试类中测试子类调用connection方法的结果,结果显示:子类默认指向父类中的方法
    mark

    当然,在子类中依然可以重写该connection方法
    mark

    经过在子类的重写之后,我们在测试类中再次测试子类对象调用connection方法的结果:
    此时的结果,就是调用重写之后的connection方法
    mark

  • 相关阅读:
    软件工程敏捷开发06
    学习进度条
    软件工程敏捷开发05
    软件工程敏捷开发04
    敏捷开发用户场景分析
    软件工程敏捷开发03
    软件工程敏捷开发02
    软件工程敏捷开发01
    面向对象程序设计(一)
    Java介绍、环境的搭建及结构化程序
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/13826924.html
Copyright © 2011-2022 走看看