6.4.5 final方法
6.4.5 final方法
final修饰的方法不可被重写,如果出于某些原因,不希望子类重写父类的某个方法,则可以使用final修饰该方法。
Object类中的final方法
Java提供的Object类里就有一个final方法:getClass(),因为Java不希望任何类重写这个getClass方法,所以使用final把这个方法密封起来。
但对于该类提供的toString和equals方法,都允许子类重写,因此没有使用final修饰它们。
注意final修饰private方法的情况
private方法子类不可见无法重写
对于一个private方法,因为它仅在当前类中可见,其子类无法访问该方法,所以子类无法重写private方法
子类定义相同的private方法也不算重写
如果子类中定义一个与父类private方法有相同方法名、相同形参列表、相同返回值类型的方法,也不是方法重写,只是重新定义了一个新方法。
子类可以定义与父类同名的final修饰的private方法
因此,即使使用final修饰一个private访问权限的方法,依然可以在其子类中定义与该方法具有相同方法名、相同形参列表、相同返回值类型的方法。
final修饰的方法可以被重载
final修饰的方法仅仅是不能被重写,并不是不能被重载。