关于继承中方法重写的问题。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Inheritance
{
class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields(){
Console.WriteLine("A");
}
}
class B : A
{
int x = 1;
int y;
public B()
{
y = -1;
}
public override void PrintFields()
{
Console.WriteLine("x={0},y={1}", x, y);
}
}
class Program
{
static void Main(string[] args)
{
B b = new B();
Console.ReadLine();
}
}
}
为什么这个程序的运行结果是:
x=1,y=0
在调用A类的构造函数时调用的PrintFields();方法会调用到B类中的重写方法;
是不是因为PrintFields();被重写之后,整个程序就只认B类中的PrintFields();方法了?
小弟初学,希望大家多多指教~呵呵~