• 16.实现多个具有相同方法的接口和父类与实现接口有相同方法


    一、实现多个具有相同方法的接口

    这种情况还是比较少会遇到的,但事实是存在这样的问题,所以写下解决的方法:

    使用内部类:

    interface InterA {
    void f();
    }
    
    interface InterB {
    void f();
    }
    
    public class C implements  InterA {
    public void f() {
    // 实现接口InterA方法
    System.out.println("A.f()");
    }
    private class ImplB implements InterB {
    public void f() {
    // 实现接口InterA方法
    System.out.println("B.f()");
    }
    }
    public  InterB getB() {
    return new ImplB();
    }
    
    // 使用
    public static void main(String[] args) {
    C c = new C();
    InterA a = c; //C实现了A接口,可以直接向上转型
    a.f();
    InterB b = c.getB();
    b.f();
    }
    }
    
     

    这样就区分开使用不同接口的方法,如果是直接实现两个接口,然后实现方法,那么将是同时实现两个接口中的方法。

    二、父类与实现接口有相同方法

    当父类中有与实现接口相同的方法时,比如(使用HTTPServlet实现的Filter就具有相同的destroy方法)

    如果不显示实现方法会发现没有语法的错误,那么就是说明继承下来的方法实现了接口中的同名方法。

    如果需要区分开,那么需要重写放以及增加一个方法,在增加的方法中使用super关键字调用父类的方法,而重写方法不调用父类方法,那么就算是区分开了。

    注:如果情况在复杂一点(如更多接口,还有一个父类)交叉多个相同方法。。。。。。。大家应该很难才会遇到这样的情况。。。而且接口的设计方法都是有意义的,不会有那么多的同名。。

     2019年6月27日 08:15:39

  • 相关阅读:
    20200721训练记录
    20200717训练记录
    打家劫舍III(力扣第337题)
    HBase API的删除数据操作的分析
    相交链表(第160题)
    删除排序链表中的重复元素(第83题)
    合并两个有序链表(力扣第21题)
    删除链表的倒数第N个节点(第19题)
    HBase的架构原理
    回文链表、链表求和(234、445)
  • 原文地址:https://www.cnblogs.com/lukelook/p/9736771.html
Copyright © 2020-2023  润新知