【问题标题】:How to inherit the properties of two classes in one class?如何在一个类中继承两个类的属性?
【发布时间】:2011-10-28 14:28:04
【问题描述】:

我有一个程序需要继承广播接收器和 MapActivity 的属性。实际上我想在收到朋友的短信时发送当前位置(经度和纬度)。我有一个代码,但不知道如何继承两个类的属性。这是我的代码:

http://pastebin.com/53ZJH3iN

如果这不可能,请给我一些想法来解决这个问题或任何其他方法?

【问题讨论】:

    标签: java android gps sms location


    【解决方案1】:

    由于java禁止多重继承,你实际上不能。当您计划申请隐蔽服务时,您不需要任何活动 - 只需一个广播接收器 它与位置服务通信并将获得的位置发送到某处。

    【讨论】:

    • 但是我的代码使用了涉及 getsystemservice() 的 locationmanager,它显示错误。你能告诉我如何修改我的代码以获取经度和纬度而不继承 MapActivity 吗?
    • 我修复了我的代码。这是我更新的代码 pastebin.com/yKitMftU 但是出现了一个新问题。它不是发送它的位置(经度和纬度),而是发送消息本身的发件人位置从发件人发送后。我希望此代码发送收件人的位置而不是发件人。你能帮我吗?
    【解决方案2】:

    Java 不支持多重继承,但您可以实现任意数量的接口,因此您可以通过组合来实现。这是一个粗略的大纲,但有很多方法可以做到。基本思想是,对于您想要从其中继承的一个或两个类,您有一个对某个实现的引用,并且您通过委托向实际实现公开相同的接口。

    interface MapActivity {
       Coordinates getCoordinates();
    ...
    }
    
    class SomeMapActivityImpl {
    ...
    }
    
    class ReceivelocationActivity extends BroadcastReceiver implements MapActivity {
      private MapActivity mapActivity = new SomeMapActivityImpl();
    
      public Coordinates getCoordinates() {
        return mapActivity.getCoordinates();
      }
    
    ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-14
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      • 2016-09-05
      • 1970-01-01
      相关资源
      最近更新 更多