modificateur final java

Le modificateur final java peut être attaché à toutes les classes, méthodes et variables, Chacun a une signification différente.

Lors de l'attachement à une classe [Interdire l'héritage]

Si vous ajoutez le modificateur final à une classe, cette classe ne peut pas être héritée. Une erreur se produira au stade de la compilation.

//classe de modificateur final
final class FinalDemo {
    String name = "Classe avec finale";
    public final void getInfo() {
        System.out.println(this.name);
    }
}

//Petite classe
class FinalDemoChild extends FinalDemo {

}

class MyApp {
    public static void main(String[] args) {
        FinalDemoChild demo = new FinalDemoChild();
    }
}

Résultat d'exécution

$ java Myapp
Error:(8, 21) java: final final_Ne peut pas être hérité de la démo

Lors de la connexion à une méthode [Interdire le remplacement]

Si vous ajoutez final à une méthode d'une classe, vous ne pouvez pas la remplacer dans la classe enfant de la méthode.

//Classe avec finale
class FinalDemo {
    String name = "Classe avec finale";
    public final void getInfo() {
        System.out.println(this.name);
    }
}

//Petite classe
class FinalDemoChild extends FinalDemo {
    @Override
    public void getInfo() {
        System.out.println(this.name + "Petite classe");
    }
}

class MyApp {
    public static void main(String[] args) {
        FinalDemoChild demo = new FinalDemoChild();
    }
}

Résultat d'exécution

$ java MyApp
Error:(11, 17) java:FinalDemoChild getInfo()Est la démo finale getInfo()Ne peut pas être remplacé
La méthode remplacée est définitive

Lors de l'attachement à une variable [Interdiction de réaffectation (constante)]

Si vous ajoutez final à une variable (champ), vous ne pouvez pas la réaffecter. Autrement dit, c'est une constante. Puisqu'il n'est pas nécessaire de le changer avec instance, il est souvent déclaré avec une variable de classe avec static. De plus, comme dans d'autres langues, toutes les constantes sont écrites en majuscules.

//Classe avec finale
class FinalDemo {
    public static final String NAME = "Variables avec final";
}


class MyApp {
    public static void main(String[] args) {
        //Changer la constante
        FinalDemo.NAME = "Réaffectation";
    }
}

Résultat d'exécution

$ java MyApp 
Error:(9, 18) java:Vous ne pouvez pas attribuer une valeur à la variable finale NAME

Recommended Posts

modificateur final java
modificateur final
Modificateur d'accès [Java]
Modificateur final et modificateur statique de l'historique d'apprentissage JAVA
Modificateur abstrait Java [Note]
Astuces Java - Modificateurs de classe StaticUtility
Contenu d'apprentissage de base Java 5 (qualificatif)
Java
Java
Apprendre Java (0)
Étudier Java ―― 3
[Java] tableau
[Java Silver] Résumé des points de modification d'accès
Java protégé
[Java] Annotation
Module [Java]
Tableau Java
Étudier Java ―― 9
Java scratch scratch
Astuces Java, astuces
Méthodes Java
Méthode Java
java (constructeur)
Tableau Java
Différence entre final et immuable en Java
java (remplacement)
java (méthode)
Journée Java 2018
Chaîne Java
Java marque les documents PPT comme état final
Java statique
Sérialisation Java
java débutant 4
JAVA payé
Étudier Java ―― 4
Java (ensemble)
[Java] compareTo
Étudier Java -5
java réfléchissant 获 获 举
java (interface)
Mémorandum Java
Tableau Java
[Java] Array
Étudier Java # 0
Revue Java
framework java
Fonctionnalités Java
[Java] Héritage
FastScanner Java
Fonctionnalités Java
java débutant 3
Mémo Java
Héritage Java
[Java] Surcharge
Les bases de Java
[Java] Annotation
java débutant
Java (add2)
JAVA (Carte)
Collection Java9