Причина, по которой вы не можете получить доступ к защищенным данным элемента через экземпляр класса.
Причина, по которой это недопустимо, объясняется в этом блоге
Методы, объявленные внутри интерфейса, неявно public
. И все переменные, объявленные в интерфейсе, неявно public static final
(константы).
public String getGait() {
return " mph, lope";
}
Все методы в interface
неявно public
, независимо от того, объявляете ли вы это явно или нет. Подробнее см. В разделе интерфейсов Java Tutorials .
Все методы из interface
неявно public
. Но внутри класса, если публикация не упоминается явно, она имеет только видимость пакета. Благодаря переопределению вы можете увеличить видимость. Вы не можете уменьшить видимость. Поэтому измените реализацию getGait()
в классе верблюда как
public String getGait() {
return " mph, lope";
}