Constructor dùng để khởi tạo non-static members của một class cụ thể đối với một object.
Constructor trong interface
- Một Interface trong Java không có constructor vì tất cả data members trong interfaces là public static final mặc định, chúng là constants (gán giá trị tại thời điểm khai báo).
- Không có data members trong interface để khởi tạo chúng qua constructor.
- Để gọi một method, cần object, vì methods trong interface không có body nên không cần gọi methods trong interface.
- Vì không thể gọi methods trong interface, không cần tạo object cho interface và không cần constructor trong nó.
Ví dụ 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));
}
}Kết quả
k value is:30
Constructor trong class
- Mục đích của constructor trong class là dùng để khởi tạo fields chứ không phải để build objects.
- Khi cố tạo instance mới của abstract superclass, compiler sẽ báo lỗi.
- Tuy nhiên, chúng ta có thể inherit abstract class và sử dụng constructor của nó bằng cách set variables của nó.
Ví dụ 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());
}
}Kết quả
Manager Name is:Adithya Salary is:50000.0