abstract、virtual、override三个关键字涉及到继承,采用父亲和儿子类比。
abstract : 父亲告诉儿子,我只是声明要做这个事情,自己没有做,所以你必须去做这个事情。
virtual : 父亲告诉儿子三种情景,a) 这个事情我做了,如果你满意的话,就不需要做了,直接继承就好了;b) 这个事情我做了,如果你有些不满意,可以在我的基础上,修改一下(使用override重写);c) 这个事情我做了,如果你非常不满意,就自己重新做一遍吧(使用new 隐藏父亲的实现)。
override : 父亲使用virtual修饰方法,儿子对父亲做的事情不满意,在父亲的基础上,使用override 修改父亲的实现。如果孙子对儿子做的事情也不满意,在儿子的基础上,使用override再次修改儿子的实现。