如何在一个类中继承两个类的属性?

时间:2011-10-28 14:28:05

标签: java android gps sms location

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

http://pastebin.com/53ZJH3iN

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

Java不支持多重继承,但您可以根据需要实现任意数量的接口,因此您可以通过组合实现此目的。这是一个粗略的轮廓,但有很多方法可以做到。基本思想是,对于您希望从中继承的一个或两个类,您可以引用某些实现,并通过委托将实际实现公开给同一个接口。

interface MapActivity {
   Coordinates getCoordinates();
...
}

class SomeMapActivityImpl {
...
}

class ReceivelocationActivity extends BroadcastReceiver implements MapActivity {
  private MapActivity mapActivity = new SomeMapActivityImpl();

  public Coordinates getCoordinates() {
    return mapActivity.getCoordinates();
  }

...
}