Maison >Java >javaDidacticiel >Pourquoi les constructeurs ne peuvent-ils pas être définitifs en Java ?

Pourquoi les constructeurs ne peuvent-ils pas être définitifs en Java ?

PHPz
PHPzavant
2023-08-20 19:01:221516parcourir

Pourquoi les constructeurs ne peuvent-ils pas être définitifs en Java ?

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".

Exemple

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();
   }
}

Erreur de temps de compilation

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer