Heim > Java > javaLernprogramm > Warum haben Schnittstellen in Java keine Konstruktoren, abstrakte Klassen jedoch Konstruktoren?

Warum haben Schnittstellen in Java keine Konstruktoren, abstrakte Klassen jedoch Konstruktoren?

PHPz
Freigeben: 2023-09-13 18:09:03
nach vorne
1591 Leute haben es durchsucht

Warum haben Schnittstellen in Java keine Konstruktoren, abstrakte Klassen jedoch Konstruktoren?

Constructor wird verwendet, um nicht statische Mitglieder einer bestimmten Klasse relativ zu einem Objekt zu initialisieren.

Konstruktoren in Schnittstellen

  • Die Schnittstellen in Java haben keine Konstruktoren, da alle Datenelemente in der Schnittstelle standardmäßig public static final sind und Konstanten sind (zur Deklarationszeit zugewiesen).
  • Die Schnittstelle enthält keine Datenelemente und Sie können sie über den Konstruktor initialisieren.
  • Um eine Methode aufzurufen, benötigen wir ein Objekt. Da die Methode in der Schnittstelle keinen Körper hat, besteht keine Notwendigkeit, die Methode in der Schnittstelle aufzurufen.
  • Da wir in der Schnittstelle keine Methoden aufrufen können, besteht keine Notwendigkeit, ein Objekt für die Schnittstelle zu erstellen und keinen Konstruktor darin einzuschließen.

Beispiel 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));
   }
}
Nach dem Login kopieren

Ausgabe

k value is:30
Nach dem Login kopieren

Konstruktor in der Klasse

  • Der Zweck von Konstruktor in der Klasse besteht darin, Felder zu initialisieren, aber nicht darin, Objekte zu erstellen.
  • Wenn wir versuchen, eine neue Instanz einer abstrakten Superklasse zu erstellen, gibt der Compiler einen Fehler aus.
  • Wir können jedoch eine abstrakte Klasse erben und ihren Konstruktor verwenden, um sie durch Festlegen ihrer Variablen zu steuern.

Beispiel 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());
   }
}
Nach dem Login kopieren

Ausgabe

Manager Name is:Adithya
Salary is:50000.0
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum haben Schnittstellen in Java keine Konstruktoren, abstrakte Klassen jedoch Konstruktoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage