Maison > Java > JavaBase > Que signifie final en Java ?

Que signifie final en Java ?

Libérer: 2019-12-02 14:38:44
original
4334 Les gens l'ont consulté

Que signifie final en Java ?

Final en Java est un mot-clé qui peut être utilisé pour modifier des références, des méthodes et des classes. (Recommandé : Tutoriel vidéo Java)

1 Utilisé pour modifier une référence

Si la référence est un type de données de base, la référence est une constante, et la valeur Ne peut pas être modifié ;

Si la référence est un type de données de référence, tel qu'un objet ou un tableau, l'objet ou le tableau lui-même peut être modifié, mais la référence pointant vers l'adresse de l'objet ou du tableau. ne peut pas être modifié.

Si la référence est une variable membre de la classe, il faut lui attribuer une valeur sur place, sinon la compilation signalera une erreur.

Un exemple est le suivant :

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};
    }
}
Copier après la connexion

2 Utilisé pour modifier une méthode

Lorsqu'une méthode finale modifiée est utilisée, cette méthode deviendra la méthode finale et ne pourra pas être utilisée. remplacé par des sous-classes. Cependant, la méthode peut toujours être héritée.

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();
    }    
}
Copier après la connexion

3. Utilisé pour modifier une classe

Lorsqu'une classe est modifiée avec final, la classe devient la classe finale et ne peut pas être héritée. Cela s’appelle simplement « retrancher les descendants et exterminer les descendants ».

/***
 * final用法3:修饰类,则该类成为最终类,无法被继承
 * @author Administrator
 *
 */
final class Person02 {    }
//class Teacher02 extends Person02 { }
//class MyString extends String{}
public class Demo03 {

}
Copier après la connexion

Pour plus de connaissances sur Java, veuillez faire attention à la colonne Tutoriel de base Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal