Если вы хотите, чтобы ваш класс B
также был универсальным, вы должны ограничить B
для протокола, который наследуется от Protocol
, а затем использовать этот универсальный параметр для ограничения A
class B<T: Protocol>: A<T> {}
protocol P: Protocol {}
class B<T:P>: A<T> {}