0
Вопрос: есть два класса А и ВC# аннотация, подкласс, как объяснить этот результат
public abstract class A
{
public A()
{
Console.WriteLine("A");
}
public virtual void Fun()
{
Console.WriteLine("A.Fun()");
}
}
public class B : A
{
public B()
{
Console.WriteLine("B");
}
public new void Fun()
{
Console.WriteLine("B.Fun()");
}
}
Если запустить:
public void Main()
{
A a = new B();
a.Fun();
}
выход:
A
B
A.Fun()
Как объяснить этот результат, я знаю, что это имеет какое-то отношение к абстрактному и suclassing, но я не знаю, как объяснить. Пожалуйста помоги.
Если вы хотите переопределить метод, вы можете использовать ключевое слово 'override' вместо' new'. –
В случае, если вам интересно о «A» - конструктор базовых классов вызывается из 'B' в любом случае – Carsten
@mikez - сделайте это ответом и объясните различия между 'new' и' override' немного - будет счастливо возвысите его – Carsten