我正在学习C#,但我不明白方法隐藏的用途是什么?我在网上搜索但我仍然不明白它是如何工作的。任何人都可以解释它是如何工作的吗?
答案 0 :(得分: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
中打印 $data = array(
'userid' => 1,
'username' => 'test',
'password' => 'example2222',
'health' => 120
);
Predis::instance()->hmset('uid-' . $data['userid'], $data);
die();
上面的例子。
你需要知道的另一件事是,这些天使用继承通常是不受欢迎的(搜索"继承是邪恶的"或"组合与继承"大量的信息为什么这是)。因此,您不必担心方法隐藏(除非有人用旧的和/或误导的代码对您进行攻击)。
答案 1 :(得分:0)
方法隐藏是指Information Hiding,这是编程中常用的一种非常基本的模式。基本上,您通常希望从接口中实现组件和实现细节的清晰分离。