Методы, которые вы переопределяете из своего суперкласса, не нужно повторно объявлять в интерфейсе вашего класса.Иногда это хорошая идея, но это не обязательно.
Точно так же вам не нужно объявлять методы, которые вы реализуете из протокола;достаточно просто объявить, что вы соответствуете протоколу.
Вы должны объявить «новые» для вашего класса методы: те, которые не унаследованы от суперкласса или части протокола.Это необходимо для того, чтобы предоставить компилятору необходимую информацию для определения правильных аргументов и возвращаемых типов, что необходимо для правильной работы вашего приложения.
Те, кто сказал, что вам не нужно объявлять ваши методы,Технически правильно, однако следует помнить, что это очень плохая практика, так как компилятор выводит параметры и возвращаемые типы, которые могут не соответствовать определению и могут вызывать неопределенное поведение при вызове метода.