A Constructor is to initialize the non-static members of a particular class with respect to an object.
Constructor in an interface
- An Interface in Java doesn't have a constructor because all data members in interfaces are public static final by default, they are constants (assign the values at the time of declaration).
- There are no data members in an interface to initialize them through the constructor.
- In order to call a method, we need an object, since the methods in the interface don’t have a body there is no need for calling the methods in an interface.
- Since we cannot call the methods in the interface, there is no need of creating an object for an interface and there is no need of having a constructor in it.
Example 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
Constructor in a class
- The purpose of the constructor in a class is used to initialize fields but not to build objects.
- When we try to create a new instance of an abstract superclass, the compiler will give an error.
- However, we can inherit an abstract class and make use of its constructor by setting its variables.
Example 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