我想在多个子类中有一个方法,它基本上可以完成某件事(例如获取用户信息),但在主类中声明(并且具有与主类不同的参数和定义)。这可能吗?
我知道这并不是真正的压倒一切,但这是否可以完成,或者它不是构建方法的合适方式?
您想要做的称为重载方法。这是可行的并且经常发生。在这里玩小提琴。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"));
}
}
Run Code Online (Sandbox Code Playgroud)