阅读时间: 5分钟
final keyword 在java中,是用于属性的限制。
它可以用于以下多种宣告方式:
类别(class)
当宣告在类别时,该类别就无法被继承(extend)。
例子:
final class Door{} //final class class SpecialAlarm extends Door{ void open(){System.out.println("Alarming!");} public static void main(String args[]){ SpecialAlarm alarm = new SpecialAlarm(); alarm.open(); } }
结果:Compile Time Error
当有其他class尝试去extend,会出现error。
函数(method)
当宣告在函数时,可继承(extend)但无法覆写(overwrite)
例子:
class Door{ final void open() //final method {System.out.println("open the door");} } class Alarm extends Door{ void open(){System.out.println("Alarming!");} public static void main(String args[]){ Alarm alarm = new Alarm(); alarm.open(); } }
结果:Compile Time Error
当有其他method尝试去overwrite,会出现error。
变数(variable)
当宣告在变数时,它是一个常数,是无法被修改的。
例子:
class Door{ final int weight_kg=20;//final variable void changeWeight(){ weight_kg =40; } public static void main(String args[]){ Door obj=new Door (); obj.changeWeight(); } }
结果:Compile Time Error
当将变数(variable)宣告为final,又尝试去修改,会出现error。