gpt4 book ai didi

java - 基类 C# 和 Java 不同的行为

转载 作者:搜寻专家 更新时间:2023-11-01 01:12:30 25 4
gpt4 key购买 nike

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com