Ошибки связаны с тем, что тип возвращаемого значения DeepCopy()
не соответствует объявлению в интерфейсе.
Кроме того, у вас другая проблема.Абстрактный класс уже реализует метод из интерфейса, но в конкретном классе вы не реализуете абстрактный метод.Вместо реализации, которую вы сейчас имеете, у вас должна быть следующая реализация:
public override IInterface<SomeOtherClass> DeepCopy()
{
}
Это будет реализовывать абстрактный метод в абстрактном классе, который автоматически реализует метод в интерфейсе.Причина, по которой вам нужно реализовать абстрактный метод в абстрактном классе, заключается в том, что этот класс должен реализовывать интерфейс.Это требование класса.