为什么接口没有构造函数,而抽象类却具有Java构造函数?
甲构造 是特定类别的非静态成员相对于一个对象初始化。
接口中的构造方法
Java中的 接口 没有构造函数, 因为默认情况下,接口中的所有数据成员都是public static final ,它们是常量(在声明时分配值)。
接口中没有数据成员可通过构造函数对其进行初始化。
为了调用方法,我们需要一个对象,因为接口中的方法没有主体,因此无需在接口中调用方法。
由于我们无法在接口中调用方法,因此无需为接口创建对象,也无需在其中构造函数。
例子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值为:" + t.add(10,20));
}
}
输出结果
k值为:30
班上的构造函数
的宗旨,构造 一个类 来初始化字段,但不建对象。
当我们尝试创建抽象超类的新实例时,编译器将给出错误。
但是,我们可以继承抽象类并通过设置其变量来使用其构造函数。
例子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("经理名称是:" + e.empName);
System.out.println("工资是:" + e.calcSalary());
}
}
输出结果
经理名称是:Adithya工资是:50000.0
以上是 为什么接口没有构造函数,而抽象类却具有Java构造函数? 的全部内容, 来源链接: utcz.com/z/316571.html