是否可以在以下示例中覆盖Filter2类中的BaseFilter.Type值?覆盖第二个子类中的基类值
void Main()
{
BaseFilter abc = new Filter2();
Console.WriteLine(abc.Type);
Filter1 d = new Filter2();
Console.WriteLine(d.Type);
Filter2 e = new Filter2();
Console.WriteLine(e.Type);
}
// Define other methods and classes here
public class BaseFilter
{
public virtual string Type { get { return "ABC"; } }
}
public class Filter1 : BaseFilter
{
public new virtual string Type { get { return "DEF"; } }
}
public class Filter2 : Filter1
{
public override string Type { get { return "X"; } }
}
在某种意义上,从上面的例子中,我想看看,如果“abc.Type”可以返回值“X”。但是,我不想从Filter1类中删除“新”关键字。
所以,这里是最后的期望值
- 过滤器1类不应该覆盖从BaseFilter类值。
- 但是,Filter2类应该覆盖BaseFilter和Filter1中的值。
OOPS语言可以吗?
用'new'关键字遮蔽,几乎总是一个坏主意。 – Enigmativity