final:最终 使修饰的类,成员等具有最终属性(就没法改了)
打破了封装性。父类的功能可以被子类重写。
如何解决: 可以不让其他类继承该类,就不会有重写了
如何实现: 用final修饰词
1)可以修饰类,方法,变量(成员,局部,静态) 2)final修饰的类不能被继承
举例
final class Fu{ PRivate void show1(){ System.out.println("show1 run"); }}class Zi extends Fu{ public void show2(){ System.out.println("show2 run"); }}会出现编译错误:
Demo.java:6: 错误: 无法从最终Fu进行继承class Zi extends Fu{ ^1 个错误3)如果在类中部分可以重写,部分不可以,那么用final修饰方法
举例
class Fu{ final void show(){ System.out.println("show1 run"); }}class Zi extends Fu{ void show(){ System.out.println("show2 run"); }}编译错误:
Demo.java:7: 错误: Zi中的show()无法覆盖Fu中的show() void show(){ ^ 被覆盖的方法为final1 个错误当一个变量,类似于 PI 这种,需要保证这个变量值不变,要加上final修饰,变成一个“常量”。 并且,被final修饰的常量名字母大写,多个单词之间用“_”链接
新闻热点
疑难解答