Указывать тут interface?

Имеется такой код, интересуюсь вопросом, нужно ли указывать тут interface? Тут вот указан interface, вот нужен ваш ответ. Убирать? Может правильно все сделано?

class KitManager {


    /** @var FCore $plugin */
    public $plugin;

    /** @var array $kits */
    public $kits = [];

    public function __construct(FCore $plugin) {
        $this->plugin = $plugin;
        $this->addKits();
    }

    public function addKits() {
        $this->kits["classic"] = new ClassicKit();
        $this->kits["archer"] = new ArcherKit();
        $this->kits["bomber"] = new BomberKit();
        $this->kits["dwarf"] = new DwarfKit();
        $this->kits["vip"] = new VipKit();
        $this->kits["warrior"] = new WarriorKit();
    }

    public function openKitForm(Player $player) {
        $buttons = [];
        /**
         * @var string $index
         * @var Kit $kit
         */
        foreach ($this->kits as $index => $kit) {
            $o = ProfileManager::$players[$player->getName()]["kits"][$index] == false ? "§cBUY" : "§aDEPLOY";
            if(ProfileManager::isVip($player)) {
                $o = "§aDEPLOY";
            }
            array_push($buttons, new Button("§6§l".$kit->getName()." §r".$o, $kit->getImage(), "url"));
        }

        $func = function (Player $player, array $data) {
            $result = $data[0];
            if($result === null) return;

            $kits = [];
            foreach (\fcore\FCore::$instance->kitMgr->kits as $kit) {
                array_push($kits, $kit);
            }

            if(empty($kits[$result])) return;

            /** @var Kit $kit */
            $kit = $kits[$result];

            $own = ProfileManager::$players[$player->getName()]["kits"][strtolower($kit->getName())];
            if(\fcore\profile\ProfileManager::isVip($player)) {
                $own = true;
            }
            if($own) {
                ProfileManager::$players[$player->getName()]["kit"] = strtolower($kit->getName());
                $player->sendMessage(\fcore\FCore::getPrefix()."§a{$kit->getName()} kit deployed!");
            }
            else {
                \fcore\FCore::$instance->kitMgr->openKitShop($player);
            }
        };

        $form = $this->plugin->formApi->createSimpleForm("§l§6Kits", "§aSelect kit.", $buttons, $func);
        $form->send($player);
    }

    public function openKitShop(Player $player) {
        /** @var FormAPI $formApi */
        $formApi = $this->plugin->formApi;

        $onSubmit = function (Player $sender, array $data) {
            $result = $data[0];
            if($result === null) return;

            /** @var Kit[] kits */
            $kits = [];

            foreach ($this->kits as $index => $kit) {
                array_push($kits, $kit);
            }

            if(empty($kits[intval($result)])) {
                return;
            }

            /** @var Kit $kit */
            $kit = $kits[intval($result)];

            $playerCoins = (int)ProfileManager::getPlayerProfileData($sender, "coins");

            if($playerCoins - $kit->getCost() >= 0) {
                $sender->sendMessage(FCore::getPrefix()."§aYou bought {$kit->getName()} kit!");
                ProfileManager::$players[$sender->getName()]["kits"][strtolower($kit->getName())] = true;
            }
            else {
                $sender->sendMessage(FCore::getPrefix()."§cYou need more coins to buy this!");
            }
        };

        $buttons = [];

        /**
         * @var  Kit $kit
         */
        foreach ($this->kits as $index => $kit) {
            array_push($buttons, new Button("§l".$kit->getName()."§r §7".$kit->getCost(), $kit->getImage(), "url"));
        }

        /** @var SimpleForm $form */
        $form = $formApi->createSimpleForm("§1§lShop§r§3 >>> §eKits", "Select the kit to buy", $buttons, $onSubmit);
        $form->send($player);
    }

    public function registerKits() {
        $this->kits["classic"] = new ClassicKit;
    }
}

// Все классы, которые в конструкторе, у них имеется метод getName нл и другие, а так же я указал implements Kit

interface Kit {


    /**
     * @return string
     */
    public function getName():string;

    /**
     * @return int
     */
    public function getCost():int;

    /**
     * @return string
     */
    public function getImage():string;

    /**
     * @return bool
     */
    public function isOnlyForVip():bool;

    /**
     * @return bool
     */
    public function isFree():bool ;

    /**
     * @param Player $player
     */
    public function equip(Player $player);
}

Ответы (0 шт):