Как наследовать свойства двух классов в одном классе? - PullRequest
1 голос
/ 28 октября 2011

У меня есть программа, которая требует наследовать свойства вещательного приемника и MapActivity. На самом деле я хочу отправить текущее местоположение (долготу и широту) при получении смс от друга. У меня есть код, но я не знаю какнаследовать свойства обоих классов. Вот мой код:

http://pastebin.com/53ZJH3iN

Пожалуйста, дайте мне некоторую идею, чтобы решить этот или любой другой подход, если это невозможно?

Ответы [ 2 ]

2 голосов
/ 28 октября 2011

Поскольку Java запрещает множественное наследование, вы на самом деле не можете. Так как вы планируете подать заявку на скрытое управление, вам не нужно ничего предпринимать - достаточно просто вещательный приемник который связывается с сервисом определения местоположения и отправляет полученное местоположение куда-нибудь.

0 голосов
/ 28 октября 2011

Java не поддерживает множественное наследование, но вы можете реализовать столько интерфейсов, сколько захотите, чтобы сделать это с помощью композиции.Вот один грубый набросок, но есть много способов сделать это.Основная идея состоит в том, что для одного или обоих классов, которые вы хотите наследовать, у вас есть ссылка на некоторую реализацию, и вы предоставляете тот же интерфейс через делегирование фактической реализации.

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

class SomeMapActivityImpl {
...
}

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

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

...
}
...