27、final和override关键字

override

当在父类中使用了虚函数时候,你可能需要在某个子类中对这个虚函数进行重写,以下方法都可以:

 如果不使用override,当你手一抖,将foo()写成了f00()会怎么样呢?结果是编译器并不会报错,因为 它并不知道你的目的是重写虚函数,而是把它当成了新的函数。如果这个虚函数很重要的话,那就会对 整个程序不利。所以,override的作用就出来了,它指定了子类的这个虚函数是重写的父类的,如果你 名字不小心打错了的话,编译器是不会编译通过的:

final

当不希望某个类被继承,或不希望某个虚函数被重写,可以在类名和虚函数后添加final关键字,添加 final关键字后被继承或重写,编译器会报错。例子如下:

 

原文地址:https://www.cnblogs.com/crbhf/p/15077355.html