我今天在接受采访时被问到这个问题,我无法理解。我被问到从开始到高级问题的所有问题,但是这个问题一直存在。我正在描述继承和多态,然后出现了这个问题。我显然从未尝试覆盖[C#/ C ++]类中的每个方法,但我不知道为了覆盖特定方法(例如.ToString)需要一些东西。我是否误解了这个问题,还是有必要?如果是这样,是什么迫使这一要求?
答案 0 :(得分:9)
sealed
virtual
或abstract
答案 1 :(得分:1)
您要覆盖的方法必须声明为virtual
或abstract
(并且处于非密封类型)。否则,您唯一的选择是隐藏。
答案 2 :(得分:1)
在C ++和C#中,您必须将基类函数声明为virtual
。否则,派生类中具有相同名称和签名的函数将隐藏基类版本。
答案 3 :(得分:0)
您要覆盖的方法必须标记为virtual或abstract
。
答案 4 :(得分:0)
如果您了解多态性和继承性,那么我觉得您可能会过度思考这个问题。我的意思是C#override就像这样:
public override double parentFunction()
{
//child implementation
}
...并且必须将父函数指定为虚拟。
如果不逐字逐句地回答问题,很难说采访者在寻找什么。我与采访者的经验是,他们只是想确保你理解一般性,但谁知道。我很想知道你是否得到了这份工作:)祝你好运!