我希望在多个子类中有一个方法,它基本上可以完成某些事情(比如获取用户信息),但是在主类中声明(并且具有不同的参数和定义)。这可能吗?
我知道这不是真的重写,但可以这样做,还是不适合构建方法?
答案 0 :(得分:4)
您要做的是称为重载方法。它是可行的并经常发生。 Play with the fiddle here. Java类似。
public class Parent
{
public virtual string HelloWorld()
{
return "Hello world";
}
public string GoodbyeWorld()
{
return "Goodbye world";
}
}
public class Child : Parent
{
// override: exact same signature, parent method must be virtual
public override string HelloWorld()
{
return "Hello World from Child";
}
// overload: same name, different order of parameter types
public string GoodbyeWorld(string name)
{
return GoodbyeWorld() + " from " + name;
}
}
public class Program
{
public static void Main()
{
var parent = new Parent();
var child = new Child();
Console.WriteLine(parent.HelloWorld());
Console.WriteLine(child.HelloWorld());
Console.WriteLine(child.GoodbyeWorld());
Console.WriteLine(child.GoodbyeWorld("Shaun"));
}
}
答案 1 :(得分:0)
您可以拥有同名方法的多个版本,这些方法具有不同数量的参数。您可以在main / parent类中包含所有这些,也可以仅在子类中添加较新的版本。这样做没有限制。
答案 2 :(得分:0)