传递相同类型的类的参数有什么意义?

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我们仍在处理的类的相同类型的参数?该计划已空的构造函数和另外一个,对于经过串nameintid,为什么有一个额外的一个并不比前面两个构造得多?

Gre*_*ill 5

看起来第三个构造函数旨在制作现有对象的副本Employee.

你可以做同样的事情:

new Employee(orig.getName(), orig.getId());
Run Code Online (Sandbox Code Playgroud)

但是这假定每个房产都有"获取"方法.这样实现一个构造函数更容易,然后调用:

new Employee(orig);
Run Code Online (Sandbox Code Playgroud)

然后,如果Employee需要更改属性,则只需在一个位置更改复制构造函数.