三妹开学了,学的计算机软件编程。她学校离我家很近,坐公交车也就 10 站路的距离, 每逢周末她都会来找我,让我辅导她学习 Java。作为一名拥有十余年编程经验的程序员,再加上父母给我们的这份血缘关系,我觉得义不容辞。
“二哥,今天我们要学习的内容是‘final 关键字’,对吧?”看来三妹已经提前预习了我上次留给她的作业。
“是的,三妹。final 关键字有很多用法。 ”我面带着朴实无华的微笑回答着她,“它可以用来修饰变量,修饰方法,修饰类。”
----正儿八经的分割线,正文开始------------
01、final 变量
可以用 final 修饰任意的变量,修饰后的变量值无法修改。
final 变量 speedLimit 被初始化为 60,当我们尝试改变它的时候,编译器会提醒“final 变量的值无法被修改”。
02、 final 方法
final 方法是不能重写的:
父类 Car2 中的 run() 方法是 final 的,子类 Honda 无法覆盖该方法,否则编译器会提示错误。
注意,final 方法虽然不能被重写,被可以被子类继承:
/** * @author 微信搜「沉默王二」,回复关键字 PDF */ class Car4{ final void run () { System.out.println("开跑"); } } class Honda2 extends Car4 { } public class FinalMethodInherited { public static void main(String[] args) { new Honda2().run(); } }
程序输出结果如下所示:
开跑
03、final 类
final 类是无法被继承的:
Car3 类是 final 的,所以无法继承,否则编译器会提示错误。
04、ending
“三妹,final 关键字我们就学到这里吧,它的用法我相信你一定全部掌握了。”我揉一揉犯困的双眼,疲惫地给三妹说。
“好的,二哥,我这就去练习去。”三妹似乎意犹未尽,这种学习状态真令我感到开心。