using System;
using System.Collections.Generic;
using System.Text;
public class Based
{
public string fun()
{
return " I am based";
}
}
public class Derived :Based
{
public string fun()
{
return " I am derived";
}
}
namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
Based br = new Derived();;
Console.Write(br.fun());
}
}
}
大家好,我已经用 Java 和 C# 编写了一小段代码。
但是我得到了不同的输出。你能解释一下吗。
在 Java 中,我得到的是“我是派生的”,而在 C# 中,我得到的是“我是基于的”。你能给我解释一下为什么吗?以及我们什么时候使用以下语法
Baseclass obj = new Derivedclass().
最佳答案
在 Java 中,默认情况下所有方法都是 virtual
,但在 C# 中它们不是。
因此,在 C# 中,您必须手动标记虚方法。
修改代码:
public class Based
{
public virtual string fun()
{
return "I am base";
}
}
public class Derived : Based
{
public override string fun()
{
return "I am derived";
}
}
关于java - 基类 C# 和 Java 不同的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30190274/