public abstract class abc
{
internal virtual string getabc()
{
}
} internal class ABC : abc
{
internal override string getabc()
{
return "ccccccccc";
}
}
class Program
{
static void Main(string[] args)
{
ABC Abc = new ABC();
Console.WriteLine(Abc.getabc());
Console.ReadKey();
}
}
错误 1 “ConsoleApplication1.abc.getabc()”: 并非所有的代码路径都返回值
using System.Windows.Forms; public abstract class abc
{
internal abstract string getabc();
} internal class ABC : abc
{
internal override string getabc()
{
return "ccccccccc";
}
}
class Program
{
static void Main(string[] args)
{
ABC Abc = new ABC();
Console.WriteLine(Abc.getabc());
Console.ReadKey();
}
}
{
internal virtual string getabc()
{
}
}
==
public abstract class abc
{
internal virtual string getabc();
}请楼主注意命名规范,类名首字母应该大写,C#中方法名也习惯首字母大写
{
// 抽象方法不要方法体。
internal abstract string getabc();
}
public abstract class abc
{
// 虚方法必须提供默认实现,所以要有返回值。
internal virtual string getabc()
{
return "";
}
}上面两个方案,你选择一个:
抽象方法不要方法体。
而虚方法必须提供默认实现,所以要有返回值。
{}吗?
如楼上的这句:internal abstract string getabc();如果要重写基类的方法时。不要用override定义此方法为可写的吗?
Microsoft (R) Visual C# 2005 编译器 版本 8.00.50727.1433
用于 Microsoft (R) Windows (R) 2005 Framework 版本 2.0.50727
版权所有 (C) Microsoft Corporation 2001-2005。保留所有权利。Program.cs(6,33): error CS0501: “abc.getabc()”必须声明主体,因为它未标记为 abstract 或 extern