【问题标题】:Two classes overriding same method两个类覆盖相同的方法
【发布时间】:2014-02-27 03:51:57
【问题描述】:

我正在尝试检测地理围栏,这需要ConnectionCallBacks 接口中的onConnected() 函数。但是,我也在片段(单独的类)中使用此接口,并在那里覆盖 onConnected() 方法。是否可以有两个不同的类覆盖相同的方法?还是只使用该函数的一个实例?

我一直试图弄清楚为什么地理围栏没有出现在我的通知中,因为我知道它们正在被创建。非常感谢任何帮助!

【问题讨论】:

    标签: java android overriding android-geofence


    【解决方案1】:

    所以,Java 支持多个接口,因此,它允许尽可能多的实现,说明 Java 类 Connect5 中有 5 个不同的接口,它们都有相同的方法 onConnected()。但请记住,创建的对象绑定到单个 Java 类,因此只有一个方法 onConnected() 暴露给该对象。现在,如果 Connect5 类型的对象 c5 也是从另一个 Java 类 Connect4 扩展并实现接口 IConnect4,该接口也具有 onConnected() 方法,并且仅在 Connect4 类中实现,而不在 Connect5 中实现。现在您有一个 Connect5 类的对象 c5 并传递给一个采用 IConnect4 的方法,然后调用 ((IConnect4)c5).onConnected() 仍然在 Connect5 类上执行 onConnected() 实现。但是,您可以调用 c5.super.onConnected() 将调用 Connect4 类的实现。现在,当您决定开始通过匿名内部类覆盖这些 onConnected() 方法时,危险就来了。

    【讨论】:

      猜你喜欢
      • 2017-11-05
      • 1970-01-01
      • 2011-03-14
      • 2013-01-19
      • 1970-01-01
      • 2014-08-15
      相关资源
      最近更新 更多