考虑以下Java代码:
public class overriding {
public static void main(String[] args) {
b b = new b();
a a = (a)b;
a.Info();
b.Info();
}
}
class a {
void Info() {
System.out.println("I'm a");
}
}
class b extends a {
void Info() {
System.out.println("I'm b");
}
}
现在让我们尝试在 C# 中做同样的事情
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
b b = new b();
a a = (a)b;
a.Info();
b.Info();
Console.ReadLine();
}
}
class a
{
public void Info()
{
Console.WriteLine("I'm a");
}
}
class b : a
{
public void Info()
{
Console.WriteLine("I'm b");
}
}
}
Java 示例输出
我是b
我是b
C# 版本输出
我是一个
我是b
有没有办法实现 b 类,以便它打印两次“I'm b”?请注意,我不是在寻找改变 a 的方法。