C# поддерживает встроенный механизм дифференцирования методов с одинаковыми именами. Вот простой пример, приведенный ниже, показывает, как это работает:В чем преимущества явной реализации интерфейса в C#?
interface IVehicle{
//identify vehicle by model, make, year
void IdentifySelf();
}
interface IRobot{
//identify robot by name
void IdentifySelf();
}
class TransformingRobot : IRobot, IVehicle{
void IRobot.IdentifySelf(){
Console.WriteLine("Robot");
}
void IVehicle.IdentifySelf(){
Console.WriteLine("Vehicle");
}
}
Каковы варианты использования или преимущества этого различия? Действительно ли мне нужно различать абстрактные методы в реализации классов?