我看到了一个试图解释 Java 继承的例子。作为基类的 Employee 类具有三个实例变量和三个构造函数。如下:
public class Employee{
private String name;
private int id;
public Employee(){
name = " No Name!";
id = 00100;
}
public Employee(String n, int i){
name = n;
id = i;
}
public Employee (Employee originalObject){
name = originalObject.name;
id = originalObject.id;
}
我的问题是:第三个构造函数有什么意义?以及它如何接受与我们仍在研究的类具有相同类型 Employee
的参数?该程序已经有一个空的构造函数和另一个为 name
传递 String 和为 id
传递 int
的构造函数,那么为什么还有一个额外的构造函数呢不外乎前两个构造函数吗?
最佳答案
看起来第三个构造函数是为了对现有的 Employee
对象进行复制。
你可能会做同样的事情:
new Employee(orig.getName(), orig.getId());
但这假定每个属性都有“获取”方法。像那样实现一个构造函数,然后调用:
new Employee(orig);
然后,如果 Employee
的属性需要更改,您只需更改一个地方的复制构造函数即可。
关于java - 传递相同类型的类的参数有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9251098/