Может ли кто-нибудь рассказать о работе переопределения и сокрытия с точки зрения памяти и ссылок.
class A
{
public virtual void Test1() { //Impl 1}
public virtual void Test2() { //Impl 2}
}
class B : A
{
public override void Test1() { //Impl 3}
public new void Test2() { Impl 4}
}
static Main()
{
A aa=new B() //This will give memory to B
aa.Test1(); //What happens in terms of memory when this executes
aa.Test2(); //-----------------------SAME------------------------
}
Здесь память относится к классу B, но во втором операторе aa.Test2будет вызываться метод класса A. Почему это? Если у B есть память, то следует вызвать метод B (с моей точки зрения).
Любая ссылка/упражнение, описывающее этот принцип очень глубоко и полностью, будет большим подспорьем.