1、final 是什么?
是一个特殊的关键字,有2个作用
· 禁止 虚函数被重写
· 禁止 类被继承
注意:只有虚函数才能被标记为final ,其他的普通函数无法标记final
2、禁止类被重写
class Person final { // 表示该类是最终类,无法被继承
};
//编译错误,无法被继承。
class Student : public Person {
};
3、禁止子类被重写
class Person {
};
class Student final: public Person {
};
class Middel_School_Student : public Student{ // 失败,因为父类Student是final修饰的
};
4、禁止成员函数被重写
class Person {
virtual void run() final { // 表示该方法是最终方法,无法被重写
}
};
class Student : public Person{
// 编译错误,方法无法被重写。
void run(){
}
};
表示到此为止,不要再变动