C# 如何利用抽象方法重写?
我正在学习C#,但我发现进一步学习有问题。我有这样的代码:C# 如何利用抽象方法重写?,c#,inheritance,overriding,abstract,C#,Inheritance,Overriding,Abstract,我正在学习C#,但我发现进一步学习有问题。我有这样的代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main() { Planeta Z1 = new Ziemia(&quo
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
Planeta Z1 = new Ziemia("matka Ziemia");
Z1.Nazwa();
System.Console.ReadKey();
}
}
public abstract class Planeta
{
protected string nazwaPlanety;
public Planeta() { nazwaPlanety = " "; }
public Planeta(string s) { nazwaPlanety = s; }
public abstract void Nazwa();
}
public class Ziemia: Planeta
{
public Ziemia() { }
public Ziemia(string s) : base(s){ }
public override void Nazwa()
{
System.Console.WriteLine(this.nazwaPlanety);
}
}
}
但我发现了两个错误:
错误1“ConsoleApplication1.Ziemia”未实现继承的抽象成员“ConsoleApplication1.Planeta.Nazwa()”行:24列:18
错误2“ConsoleApplication1.Ziemia.Nazwa(字符串)”:找不到合适的方法来重写第28行第30列
为什么我会犯这样的错误
如何避免它们并使程序正常工作
另外:我不知道为什么在第二个错误中,它显示“string”'ConsoleApplication1.Ziemia.Nazwa(string)'作为函数将采用的参数类型。尝试一种更简单的方法来删除可能的问题参数。您可以尝试以下控制台应用程序示例。将员工替换为Ziemia,将技师班替换为“Planeta*”
我已经编译(并运行)了它。它很有效。请显示您的真实代码。您所问的代码是可以的。尝试清理并重建应用程序。嘿……但这确实是我的代码。显然是从我的Microsoft Visual C#2010 Express控制台复制的:/您可能有未保存的文档吗?