У меня есть этот Java код:Реализовать метод с параметром расширенного интерфейса
public interface User{
public void in(Message message);
}
public interface Message{
//....
}
public interface WebsiteMessage extends Message{
//....
}
public class WesiteUser implements User{
@Override
//I'm not allowed to do this
public void in(WebsiteMessage message){}
}
Есть ли способ я могу реализовать in
метод с параметром WebsiteMessage? На данный момент я делаю что-то вроде этого:
@Override
public void in(Message message){
WebsiteMessage msg= (WebsiteMessage) message;
//..
}
Разрешено ли вам изменять «Пользователь»? – Spotted
@ Исправлено да. Я уже выбрал ответ. Но вы можете предоставить его, если я не могу изменить пользователя, и я буду его голосовать. –
Если вы не можете изменить 'User', я не вижу простого решения. Тем не менее, я думаю, что ваш текущий дизайн испорчен, если вам нужно «WebsiteMessage» (вместо «Message») в «WebsiteUser». Это указывает на то, что ваш интерфейс протекает, и я начну с обработки 'Message', чтобы каждая реализация' User' могла работать с 'Message'. – Spotted