Chaque fois que vous déclarez une méthode comme finale, vous ne pouvez pas la remplacer. Autrement dit, vous ne pouvez pas fournir à une sous-classe une implémentation de la méthode finale d'une superclasse.
En d'autres termes, le but de déclarer une méthode comme finale est d'éviter que la méthode soit modifiée de l'extérieur (sous-classes).
En héritage, lorsque vous étendez une classe, la sous-classe hérite de tous les membres de la superclasse sauf le constructeur.
En d'autres termes, les constructeurs ne peuvent pas être hérités en Java, vous ne pouvez donc pas remplacer le constructeur.
Par conséquent, cela ne sert à rien d'ajouter final devant le constructeur. Par conséquent, Java ne permet pas l’utilisation du mot-clé final avant un constructeur.
Si vous essayez de déclarer le constructeur comme final, une erreur de compilation sera générée, indiquant "modificateur final non autorisé ici".
Dans le programme Java suivant, la classe Student a un constructeur qui est déclaré final.
Démo
public class Student { public final String name; public final int age; public final Student() { this.name = "Raju"; this.age = 20; } public void display() { System.out.println("Name of the Student: "+this.name ); System.out.println("Age of the Student: "+this.age ); } public static void main(String args[]) { new Student().display(); } }
Lors de la compilation, le programme ci-dessus génère l'erreur suivante.
Student.java:6: error: modifier final not allowed here public final Student(){ ^ 1 error
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!