Bri*_*nes -3 c# inheritance overriding
class base{
....
public string name();
....
}
class deriveda : base{
....
public override string name();
....
}
class derivedb : base{
....
public override string name();
....
}
class derivedc : base{
....
public override foo name();
....
}
Run Code Online (Sandbox Code Playgroud)
在我的大多数派生类中,它是一致的,但其中一个我想返回一个自定义类类型,这可能吗?
简短的回答是否定的.
想一想,以后你将如何使用它?
base b = new derivedc ()
Run Code Online (Sandbox Code Playgroud)
然后?什么是返回类型b.name()?string?foo?
但是你可以使用泛型来控制它(虽然我不确定它是否适合你的用例):
class base<T>{
....
public virtual T name();
....
}
class deriveda : base<string>{
....
public override string name();
....
}
class derivedb : base<string>{
....
public override string name();
....
}
class derivedc : base<foo>{
....
public override foo name();
....
}
Run Code Online (Sandbox Code Playgroud)