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不是的
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货