Java の Final キーワードの機能は次のとおりです: 1. 参照を変更する; 2. メソッドを変更する; 3. クラスを変更する。メソッドが最終的に変更されると、このメソッドが最終メソッドとなり、サブクラスによってオーバーライドすることはできません。 Final がクラスを変更すると、そのクラスは最終クラスになり、String クラスなどを継承することはできません。
final キーワードは、参照、メソッド、クラスを変更するために使用できます。
(推奨チュートリアル: java 入門チュートリアル)
1. 参照の変更
参照が基本データ型の場合、参照は定数です。値は変更できません。参照がオブジェクトや配列などの参照データ型の場合、オブジェクトまたは配列自体は変更できますが、オブジェクトまたは配列のアドレスを指す参照は変更できません。参照はクラスのメンバー変数であるため、その場で値を割り当てる必要があります。そうでない場合、コンパイルでエラーが報告されます。
コード実装:
final class Person { String name ="zs"; //3. 此处不赋值会报错 //final int age; final int age = 10; } public class Demo01 { public static void main(String[] args) { //1. 基本数组类型为常量,无法修改 final int i = 9; //i = 10; //2. 地址不能修改,但是对象本身的属性可以修改 Person p = new Person(); p.name = "lisi"; final int[] arr = {1,2,3,45}; arr[3] = 999; //arr = new int[]{1,4,56,78}; } }
2. 変更メソッド
最終変更メソッドが使用される場合、このメソッドは最終メソッドとなり、サブクラスによってオーバーライドすることはできません。ただし、メソッドは引き続き継承できます。
class Person { public final void say() { System.out.println("说...."); } public void eat() { System.out.println("吃..."); } } class Teacher extends Person { //1. final修饰的方法不能被重写,但此方法仍然被继承 /*@Override public void say() { System.out.println("老师在一本正经的说..."); }*/ public void eat() { System.out.println("老师在大口大口的吃..."); } } public class Demo02 { public static void main(String[] args) { Teacher t = new Teacher(); t.say(); } }
(ビデオ チュートリアルの推奨: java ビデオ チュートリアル)
3. クラスの変更に使用されます
クラスが Final で変更されると、 classはFinalクラスとなり継承できません。単に「子孫を絶つ、子孫を絶つ」とも言います。たとえば、String クラスは最後のクラスです。
コード実装:
/*** * final用法3:修饰类,则该类成为最终类,无法被继承 * @author Administrator * */ final class Person02 { } //class Teacher02 extends Person02 { } //class MyString extends String{} public class Demo03 { }
以上がJavaのfinalキーワードの機能は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。