本文主要是介绍《从C/C++到Java入门指南》- 25.final 关键字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
final 关键字
final 变量
final
变量可以理解为C++中的const
,变量一经定义无法修改。
public class Main {public static void main(String args[]) {final double PI = 3.1415926;System.out.println(PI);// PI = 3.14; // 尝试修改会报错}
}
final 方法
一个定义为final
的方法可以防止子类修改该方法,之前提到过private
关键字,也是同理。private
关键字修饰的方法相当于隐式的将方法指定为了final
。所以一个方法使用final
修饰就没有必要再使用private
。
class Father {public final void turnOnTheTV() {System.out.println("老登打开了电视");}
}class Child extends Father {public final void turnOnTheTV() {System.out.println("小子也想打开电视");}
}public class Main {public static void main(String args[]) {var child = new Child();child.turnOnTheTV();}
}
可以看出,在父类中定义了final
修饰的方法不允许子类进行更改,上述代码会进行报错。
final 类
被定义为final
的类不能被继承。
final class Father {public final void turnOnTheTV() {System.out.println("老登打开了电视");}
}class Child extends Father {}public class Main {public static void main(String args[]) {
// Child child = new Child();}
}
如果实例化一个继承自final
父类的子类的对象,会报错。
例如,java.lang.Math
和java.lang.String
是两个final
修饰的类,如果他们出现在extends
右侧会发生编译器报错。
class Child extends java.lang.Math {}public class Main {public static void main(String args[]) {}
}
这篇关于《从C/C++到Java入门指南》- 25.final 关键字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!