package example;
class m1
{
public int getInt()
{
return 0;

}
}
class m2 extends m1
{
public int getInt()
{
return 1;
}
}
public class Override
{
public static void main(String[] args)
{
m1 m = new m2();
m.getInt();
System.out.println(m.getInt());
}
}
//输出的是1,说明是调用的是m2的getInt()方法下面是C#的代码namespace test1
{
    class Override
    {
        public int getInt()
        {   
            return 0;
        }
    }
    class InheritOverride : Override
    {
         public int getInt()
        {
            return 1;
        }
    }
    class G0
    {
        static void Main()
        {
            Override i = new InheritOverride();
            int j = i.getInt();
            Console.Write(j);//输出的是0,说明调用的是父类的getInt()方法
            Console.ReadKey();
        }
    }
}
疑问:两种语言的重写机制有什么不同吗,C#只有用virtul,abstract,父类的对象才会指向子类的重写方法。而java不是的