Rumah  >  Artikel  >  Java  >  Mengapa antara muka tidak mempunyai pembina di Jawa, tetapi kelas abstrak mempunyai pembina?

Mengapa antara muka tidak mempunyai pembina di Jawa, tetapi kelas abstrak mempunyai pembina?

PHPz
PHPzke hadapan
2023-09-13 18:09:031497semak imbas

Mengapa antara muka tidak mempunyai pembina di Jawa, tetapi kelas abstrak mempunyai pembina?

Constructor digunakan untuk memulakan ahli bukan statik kelas tertentu berbanding objek.

Pembina dalam antara muka

  • Antaramuka di Java tidak mempunyai Constructor ahli #🎜 dalam antara muka ialah akhir statik awam secara lalai, ia adalah pemalar (diberikan pada masa pengisytiharan).
  • Tiada ahli data dalam antara muka yang boleh dimulakan melalui pembina.
  • Untuk memanggil kaedah, kita memerlukan objek Kerana kaedah dalam antara muka tidak mempunyai badan, tidak perlu memanggil kaedah dalam antara muka.
  • Oleh kerana kita tidak boleh memanggil kaedah dalam antara muka, tidak perlu mencipta objek untuk antara muka dan tidak perlu memasukkan pembina di dalamnya.
Contoh 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));
   }
}

Output

k value is:30

Pembina dalam kelas ##🎜🎜🎜🎜🎜🎜🎜🎜 daripada

pembina

dalam kelas
    adalah untuk memulakan medan, tetapi bukan untuk membina objek.
  • Apabila kita cuba mencipta contoh baharu kelas super abstrak, pengkompil memberikan ralat. Walau bagaimanapun, kita boleh mewarisi kelas abstrak dan menggunakan pembinanya untuk mengawalnya dengan menetapkan pembolehubahnya.
  • Contoh 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());
       }
    }
  • Output
  • Manager Name is:Adithya
    Salary is:50000.0

Atas ialah kandungan terperinci Mengapa antara muka tidak mempunyai pembina di Jawa, tetapi kelas abstrak mempunyai pembina?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam