Рассмотрим этот код:
public class Person
{
public virtual void UpdateLastLogin()
{
// business of last login here
}
}
public class Student : Person
{
public override void UpdateLastLogin()
{
// logging something specific to person
((Person)this).UpdatelastLogin();
}
}
Почему выше код генерирует исключение STACKOVERFLOW?
Но это не так:
public class Person
{
public virtual void UpdateLastLogin()
{
// business of last login here
}
}
public class Student : Person
{
public override void UpdateLastLogin()
{
// logging something specific to person
base.UpdatelastLogin();
}
}