2015-06-08 69 views
-4

我正在学习C#,但我不明白什么是方法隐藏的用法?我搜索了网页,但我仍然不明白它是如何工作的。任何人都可以解释它如何工作?方法隐藏的用途是什么?

+1

你的意思是:“它是如何工作”或“你为什么要这么做?” – Cadburry

+0

我问任何用途有或没有 –

+0

确定你可以给我的任何引用链接? –

回答

0

方法隐藏指Information Hiding这通常是在编程中使用的一个非常基本的图案。基本上你通常希望实现组件和实现细节与接口的完全分离。

+1

我不认为他指的封装,我认为他在谈论[这]对谷歌非常热门结果(https://msdn.microsoft.com/en-us/library/435f1dw2.aspx)。 – dcastro

1

方法隐藏是用于替代与在子类中的新功能的基类的非虚拟方法的技术。它有一些令人讨厌的行为,可以很容易地把人赶出去。要通过举例的方式说明:

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已宣布virtualnew就没有必要和两个obj1.Foo()obj2.Foo()会印在上面的例子中ChildClass

你需要知道的唯一的另一件事是,使用继承的这些日子通常是不被接受的(搜索“继承是邪恶的”还是“组合vs继承”), 。因此,您不必担心隐藏方法(除非有人用旧的和/或错误的代码将它施加给您)。

相关问题