Maison > Java > javaDidacticiel > Pourquoi les interfaces n'ont-elles pas de constructeurs en Java, alors que les classes abstraites ont des constructeurs ?

Pourquoi les interfaces n'ont-elles pas de constructeurs en Java, alors que les classes abstraites ont des constructeurs ?

PHPz
Libérer: 2023-09-13 18:09:03
avant
1592 Les gens l'ont consulté

Pourquoi les interfaces nont-elles pas de constructeurs en Java, alors que les classes abstraites ont des constructeurs ?

Constructor est utilisé pour initialiser les membres non statiques d'une classe spécifique par rapport à un objet.

Constructeurs dans les interfaces

  • Les interfaces en Java n'ont pas de constructeurs, car toutes les données membres de l'interface sont public static final par défaut, et ce sont des constantes (attribuées au moment de la déclaration).
  • Il n'y a pas de données membres dans l'interface et vous pouvez les initialiser via le constructeur.
  • Pour appeler une méthode, nous avons besoin d'un objet Comme la méthode dans l'interface n'a pas de corps, il n'est pas nécessaire d'appeler la méthode dans l'interface.
  • Comme nous ne pouvons pas appeler de méthodes dans l'interface, il n'est pas nécessaire de créer un objet pour l'interface et il n'est pas nécessaire d'y inclure un constructeur.

Exemple 1

interface Addition {
   int add(int i, int j);
}
public class Test implements Addition {
   public int add(int i, int j) {
      int k = i+j;
      return k;
   }
   public static void main(String args[]) {
      Test t = new Test();
      System.out.println("k value is:" + t.add(10,20));
   }
}
Copier après la connexion

Sortie

k value is:30
Copier après la connexion

Constructeur en classe

  • Le but de constructeur en classe est d'initialiser des champs, mais pas de construire des objets.
  • Lorsque nous essayons de créer une nouvelle instance de super classe abstraite, le compilateur renvoie une erreur.
  • Cependant, nous pouvons hériter d'une classe abstraite et utiliser son constructeur pour la contrôler en définissant ses variables.

Exemple 2

abstract class Employee {
   public String empName;
   abstract double calcSalary();
   Employee(String name) {
      this.empName = name; // Constructor of abstract class  
   }
}
class Manager extends Employee {
   Manager(String name) {
      super(name); // setting the name in the constructor of subclass
   }
   double calcSalary() {
      return 50000;
   }
}
public class Test {
   public static void main(String args[]) {
      Employee e = new Manager("Adithya");
      System.out.println("Manager Name is:" + e.empName);
      System.out.println("Salary is:" + e.calcSalary());
   }
}
Copier après la connexion

Sortie

Manager Name is:Adithya
Salary is:50000.0
Copier après la connexion

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!

source:tutorialspoint.com
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