Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从派生类调用超类:_Java - Fatal编程技术网

Java 从派生类调用超类:

Java 从派生类调用超类:,java,Java,当我为一个子类创建引用对象并试图输出引用对象时,我只从超类获得输出,它不会显示来自子类的任何内容。为什么? //超级类代码: public class Employee { private String name; private Date hireDate; public Employee() { name="no name yet"; hireDate=new Date("January",1,1000); }

当我为一个子类创建引用对象并试图输出引用对象时,我只从超类获得输出,它不会显示来自子类的任何内容。为什么?

//超级类代码:

public class Employee 
{
    private String name;
    private Date hireDate;

    public Employee()
    {
        name="no name yet";
        hireDate=new Date("January",1,1000);
    }
    public Employee(String theName,Date theDate)
    {
        if(theName==null||theDate==null)
        {
            System.out.println("Error1");
            System.exit(0);
        }
        else
            name=theName;
            hireDate=new Date(theDate);
    }
    public Employee(Employee originalObject)
    {
        name=originalObject.name;
        hireDate=new Date(originalObject.hireDate);
    }
    public String getName()
    {
        return name;
    }
    public Date getHireDate()
    {
        return new Date(hireDate);
    }
    public void setName(String newName)
    {
        if(newName==null)
        {
            System.out.println("Error2");
            System.exit(0);
        }
        else 
            name=newName;
    }
    public void setHireDate(Date newDate)
    {
        if(newDate==null)
        {
            System.out.println("Error3");
            System.exit(0);
        }
        else 
            hireDate=new Date(newDate);
    }
    public String toString()
    {
        return(name+ " "+hireDate.toString());
    }
    public boolean equals(Employee otherEmployee)
    {
        return((name.equals(otherEmployee.name))&&(hireDate.equals(otherEmployee.hireDate)));
    }
}

/////////////////////////////////////////////////////////////////////////

//sub class code:

public class SalariedEmployee extends Employee 
{
    private double salary; //annually
    public SalariedEmployee()
    {
        super();
        salary=0;
        System.out.println("hi");
    }
    public static void main(String[]args)
    {
        SalariedEmployee s=new SalariedEmployee();
        System.out.println(s);
    }
}


//Thank u....
这使用对象的toString()方法。您还没有在子类中重写此方法,因此只看到超类实现的输出是正常的

例如,您可以在SalariedEmployee类中添加:

public String toString(){
  return super.toString() + ",salary:" +salary;
}

你说子类没有显示是什么意思?上面的代码甚至不会编译
public String toString(){
  return super.toString() + ",salary:" +salary;
}