Разобраться в системе интерфейсов не могу.

  • Автор темы Автор темы FAQCoder
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

FAQCoder

Активный участник
Пользователь
Баллы
61
Здравствуйте, на днях пробовал систематизировать пару проектов. Наткнулся на очень интересный код:
PHP:
interface Art extends InventoryHolder{
void draw();
Pickture build(int slot, Player p);
}
interface Pickture{
void give();
}

public class ArtListener implements Listener {
    @EventHandler
    public void onClick(InventoryClickEvent event) {
InventoryHolder holder = event.getInventory().getHolder();
if(holder instanceof Art){
Art art = (Art)holder.getMenu();
Picture pic = art.build(event.getSlot(), (Player)event.getWhoClicked());
}
}
На фоне происходит какойт билд и все выполняется. Понять не могу че за билд происходит, все классы перерыл, ничего толком не нашел. Слышал про callback, но не особо въехал как он работает. Можно ли как-то на фоне реализовывать интерфейсы по условию предположим.
 
Там разве не использован пример готового шаблона из bukkit? Что насчёт кастомного interface api?
Ты реально тупой. Я тебе целое наглядное видио скинул. Короткое простое и понятное.
И даже готовый класс гуишки дал.
Открой его игроком и ивент InventoryClickEvent#.getInventory().getHolder() будет получать мой класс. При этом ведро ничего и нигде не знало о моем классе реализаторе.
 
Последнее редактирование:
Интерфейс это определение java класса которое хранит в себе поля и методы, их можно реализовать создав класс который implements твойИнтерфейс.
За тем можно юзать методы из интерфейса, например Player - пустой, но при входе игрока создается объект интерфейса Player и в него данные заносятся, о игроке. Потом вызывается PlayerJoinEvent в котором это event.getPlayer() и есть игрок (Интерфейс).
Методы интерфейса пустые, но можно создать класс который их переопределит.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх