У меня есть следующий код:Принудительно метод переопределения для базового класса
public partial class Root : ICustomInterface
{
public virtual void Display()
{
Console.WriteLine("Root");
Console.ReadLine();
}
}
public class Child : Root
{
public override void Display()
{
Console.WriteLine("Child");
Console.ReadLine();
}
}
class Program
{
static void Main(string[] args)
{
Root temp;
temp = new Root();
temp.Display();
}
}
Output: "Root"
Desired output: "Child"
Когда я экземпляр Root
объекта и вызовите Display()
метод, который я хочу, чтобы отобразить перекрытый метод в Child
это возможно.
мне это нужно, потому что я должен создать плагин, который является расширением к базовому коду и аннулирует Display()
метод Root
класса и реализует единственный метод плагина Child
Я не думаю, что вы полностью понимаете наследование. вам нужно создать экземпляр Child, если вы хотите, чтобы метод Display() выводил «Child» –
. Для отредактированной части вопроса вы должны увидеть: http://stackoverflow.com/questions/2779146/c-is-there- way-for-a-class-to-remove-methods-that-it-has-inherited, а также этот: http: // stackoverflow.com/questions/1125746/how-to-hide-remove-a-base-classes-methods-in-c – Habib