final主要又两个作用:
1)class ClassName final ... 这个关键字可以防止 类被继承
2)virtual void FunctionName()final... 也可以防止子类来重写从父类继承来的虚函数(再父类的函数声明后加上即可)
override的作用
1)防止粗心大意,是程序员总会有粗心的时候,比如函数名字写错了,当你要重写父类的虚函数时,加上这个关键字可以防止出错(建议都加上)
2)当你重写从父类继承下来的虚函数时,你重写的函数定义不会覆盖原来的函数定义,但是你调用的时候又调用的时你新写的函数,那么原来的函数定义去哪里了呢?其实是编译器把他隐藏了。用了 这个关键字override你新的定义会把原来的定义覆盖掉,从某种程度上也是节约了资源,(推荐使用)