разрешение метода с базовыми типами - PullRequest
0 голосов
/ 14 апреля 2011

Моя ситуация такова:

public class InheritedClass : BaseClass
{
    public override void SomeMethod()
    {
        AnotherMethod();
    }
    public override void AnotherMethod()
    {
    }
}

public class BaseClass
{
    public virtual void SomeMethod()
    { }
    public virtual void AnotherMethod()
    { }
}

Так какой метод вызывается, когда я вызываю InheritedClassInstance.SomeMethod?Он вызывает InheritedClassInstance.AnotherMethod или AnotherMethod базового класса?

Ответы [ 2 ]

2 голосов
/ 14 апреля 2011

Звонит InheritedClassInstance.AnotherMethod()

Если бы вы хотели, чтобы он вызывал базовый класс AnotherMethod(), вы бы написали base.AnotherMethod()

0 голосов
/ 14 апреля 2011

Он вызовет производный метод для унаследованного класса, если вы явно не вызовете базовый метод (base.AnotherMethod())

...