6.4.5 final方法

6.4.5 final方法

final修饰的方法不可被重写,如果出于某些原因,不希望子类重写父类的某个方法,则可以使用final修饰该方法。

Object类中的final方法

Java提供的Object类里就有一个final方法:getClass(),因为Java不希望任何类重写这个getClass方法,所以使用final把这个方法密封起来。
但对于该类提供的toStringequals方法,都允许子类重写,因此没有使用final修饰它们。

注意final修饰private方法的情况

private方法子类不可见无法重写

对于一个private方法,因为它仅在当前类中可见,其子类无法访问该方法,所以子类无法重写private方法

子类定义相同的private方法也不算重写

如果子类中定义一个与父类private方法有相同方法名相同形参列表相同返回值类型的方法,也不是方法重写,只是重新定义了一个新方法。

子类可以定义与父类同名的final修饰的private方法

因此,即使使用final修饰一个private访问权限的方法,依然可以在其子类中定义与该方法具有相同方法名相同形参列表相同返回值类型的方法。

final修饰的方法可以被重载

final修饰的方法仅仅是不能被重写,并不是不能被重载。