Я определил clientMessage как Сообщение clientMessage
Вот причина вашей ошибки компиляции.
И pos_X определен в ConnectMessage
, что расширяет Message
,следовательно, Message
не знает полей в ConnectMessage
.
Подход, чтобы решить эту проблему:
- Вам придется разыграть его как
((ConnectMessage)clientMessage).pos_X
, если вы хотите обратиться кit. - Переместить pos_X в
Message
класс (здесь вы должны решить, достаточно ли pos_X универсально, чтобы его можно было переместить на Message
, если да, пожалуйста, переместите, если нет, это очень сильно связано с ConnectMessage
и завтра, если есть новый производный класс, скажем, DisconnectMessage
, и pos_X не будет для него полезен, тогда не двигайтесь. - Вместо создания
Message clientMessage
сделайте это ConnectMessage clientMessage
, но тогда вы отклоняетесь от Программа для интерфейса
Как здесь работает наследование
В подклассе наследования, дочернем, производном классе (назовите его так, как вам удобно)) будет расширять (наследовать) свойства от Super Class, Parent Class.
Чтобы сделать его проще и понятнее,
Ребенок получает фамилию отца , но обратное неверно, в аналогичных строках в ООП с наследованием, Производный класс будет наследовать от Parent и наоборот не соответствует действительности.
Таким образом, в контексте вашего вопроса ConnectMessage
может видеть свойства, определенные в Message
(при условии, что они не являются частными), но Message
не знает о внутренностях ConnectMessage
.