using System;
public class Program
{
class A
{
public void abc(int q)
{
Console.WriteLine("abc from A");
}
}
class B : A
{
public void abc(double p)
{
Console.WriteLine("abc from B");
}
}
public static void Main(string[] args)
{
int i = 5;
B b = new B();
b.abc(i);
Console.ReadLine();
}
}
当我运行上面的代码时,我得到了输出
abc from B
.由于B类是从A类继承而来的,所以不应该调用A类的abc方法吗?
我更新了代码,更新的代码是:
using System;
public class Program
{
class A
{
public void abc(int q)
{
Console.WriteLine("abc from A");
}
}
class B : A
{
}
public static void Main(string[] args)
{
int i = 5;
B b = new B();
b.abc(i);
Console.ReadLine();
}
}
现在,当我运行代码时,我得到了输出
abc from A
这完全有道理,因为B类继承自A类。
另一种情况下,更新的代码是:
using System;
public class Program
{
class A
{
public void abc(int q)
{
Console.WriteLine("abc from A");
}
}
class B : A
{
public void abc(double p)
{
Console.WriteLine("abc from B");
}
}
public static void Main(string[] args)
{
int i = 5;
A b = new B();
b.abc(i);
Console.ReadLine();
}
}
现在,当我运行代码时,我得到了输出
来自A的abc
.第二个和第三个案例对我来说完全有意义。有人能解释一下第一个案例的结果吗。