Abd*_*ahR 3 java inheritance constructor
我看到了一个试图用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;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:第三个构造函数有什么意义?以及它如何接受Employee我们仍在处理的类的相同类型的参数?该计划已空的构造函数和另外一个,对于经过串name并int为id,为什么有一个额外的一个并不比前面两个构造得多?
看起来第三个构造函数旨在制作现有对象的副本Employee.
你可以做同样的事情:
new Employee(orig.getName(), orig.getId());
Run Code Online (Sandbox Code Playgroud)
但是这假定每个房产都有"获取"方法.这样实现一个构造函数更容易,然后调用:
new Employee(orig);
Run Code Online (Sandbox Code Playgroud)
然后,如果Employee需要更改属性,则只需在一个位置更改复制构造函数.