我正在学习C#,但我不明白什么是方法隐藏的用法?我搜索了网页,但我仍然不明白它是如何工作的。任何人都可以解释它如何工作?方法隐藏的用途是什么?
-4
A
回答
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
已宣布virtual
,new
就没有必要和两个obj1.Foo()
和obj2.Foo()
会印在上面的例子中ChildClass
。
你需要知道的唯一的另一件事是,使用继承的这些日子通常是不被接受的(搜索“继承是邪恶的”还是“组合vs继承”), 。因此,您不必担心隐藏方法(除非有人用旧的和/或错误的代码将它施加给您)。
相关问题
- 1. SPHttpUtility.NoEncode方法的用途是什么?
- 2. QAbstractButton :: checkStateSet()方法的用途是什么?
- 3. ob_get_length()方法的用途是什么?
- 4. awaitTermination()方法的用途是什么?
- 5. _createElement方法的用途是什么?
- 6. Control.GetPreferredSize方法的用途是什么?
- 7. DISPOSE方法的用途是什么?
- 8. 方法attribute-target的用途是什么?
- 9. System.Reflection.RuntimeReflectionExtensions中方法的用途是什么?
- 10. 成员隐藏,什么是它的实际用途
- 11. 什么是禁用和隐藏UIButton/UIBarButtonItem的理想方法?
- 12. 为什么叫做“方法隐藏”?
- 13. 为什么我的Static方法隐藏我的实例方法?
- 14. 在Python中,为什么contains()是str对象的隐藏方法?
- 15. 在android中隐藏图像的最佳方法是什么?
- 16. 隐藏多段线的正确方法是什么?
- 17. 什么是大量隐藏域的替代方法?
- 18. 隐藏div onclick并存储cookie的最佳方法是什么?
- 19. 处理可见性=隐藏的React.js方法是什么?
- 20. 什么是“隐藏常量”?
- 21. layout.xml的用途是什么?
- 22. PhoneGap的用途是什么?
- 23. AtomicReferenceArray的用途是什么?
- 24. felix.xml的用途是什么?
- 25. WSDL的用途是什么?
- 26. RegisterFmxClasses的用途是什么?
- 27. FXCollections.observableArrayList的用途是什么?
- 28. config.assets.precompile的用途是什么?
- 29. Rake的用途是什么?
- 30. _dl_sysinfo_int80的用途是什么?
你的意思是:“它是如何工作”或“你为什么要这么做?” – Cadburry
我问任何用途有或没有 –
确定你可以给我的任何引用链接? –