Где дублирование, о котором вы говорите? Если вы посмотрите на пример:
interface IPerson
{
string Name { get; set; }
}
interface IDoctor : IPerson
{
string Specialty {get; set; }
}
class Doctor : IDoctor
{
public string Name { get; set; }
public string Specialty {get; set;}
}
Здесь нет дублирования - Doctor
должен реализовать свойство Name
только один раз, а также, конечно, должен реализовать свойство Specialty
.
Интерфейсы дают вам просто интерфейс , а не реализацию свойств (и это именно то, что вы хотели бы в большинстве случаев использовать в своих интересах полиморфизма) - если вам нужен реализация этих свойств по умолчанию, вы, вероятно, должны использовать абстрактный базовый класс, который реализует эти свойства.