C# 方法隐藏的用途是什么?

C# 方法隐藏的用途是什么?,c#,C#,我正在学习C,但我不明白隐藏方法有什么用?我在网上搜索了一下,但还是不知道它到底是怎么工作的。有人能解释它是如何工作的吗?方法隐藏指的是编程中通常使用的一种非常基本的模式。基本上,您通常希望实现组件和实现细节与接口的清晰分离。方法隐藏是一种用于将基类的非虚拟方法替换为子类中的新功能的技术。它有一些令人讨厌的行为,很容易把人抓出来。举例说明: class BaseClass { public void Foo() { Console.WriteLine("Bas

我正在学习C,但我不明白隐藏方法有什么用?我在网上搜索了一下,但还是不知道它到底是怎么工作的。有人能解释它是如何工作的吗?

方法隐藏指的是编程中通常使用的一种非常基本的模式。基本上,您通常希望实现组件和实现细节与接口的清晰分离。

方法隐藏是一种用于将基类的非虚拟方法替换为子类中的新功能的技术。它有一些令人讨厌的行为,很容易把人抓出来。举例说明:

class BaseClass 
{
    public void Foo() 
    {
        Console.WriteLine("BaseClass");
    }
}

class ChildClass : BaseClass 
{
    public new void Foo()
    {
        Console.WriteLine("ChildClass");
    }
}

ChildClass obj1 = new ChildClass();
BaseClass obj2 = obj1;
obj1.Foo(); // Prints "ChildClass"
obj2.Foo(); // Prints "BaseClass"
如果Foo被声明为virtual,则不需要new,并且在上面的示例中,obj1.Foo和obj2.Foo都会打印ChildClass


关于这一点,你需要知道的另一件事是,现在使用继承通常是不受欢迎的,你可以搜索继承是邪恶的,也可以搜索合成与继承的大量信息来了解为什么会这样。因此,您不必担心方法隐藏,除非有人用他们的旧代码和/或误导代码将其强加给您

你的意思是:它是如何工作的,或者你为什么要这样做?我在问有没有什么用处?你能给我发一些参考链接吗。注意:这些都是google上关于方法隐藏的最热门的结果。我不认为他指的是封装,我认为他指的是封装。