public class NotSpecialtyDoctor extends Doctor {
private int salary;
public NotSpecialtyDoctor( String name,String ID, String address,int salary) {

super(name, ID, address);
this.salary=salary;
}
public static void main(String[] args) {
NotSpecialtyDoctor doctor = new NotSpecialtyDoctor("lisi","2001","Ameirican",3000);
System.out.println(doctor);
}
}
为什么 3000不输出,如何让它输出

解决方案 »

  1.   

    public class NotSpecialtyDoctor extends Doctor {
    private int salary;
    public NotSpecialtyDoctor( String name,String ID, String address,int salary) {super(name, ID, address);
    this.salary=salary;
    }@Override
    public String toString() {
    //调用父类Doctor的toString方法得到父类的输出,然后用父类的输出加上子类的薪水就可以了
    String str = super.toString();
    System.out.println(str + "    " + salary);
    }
    public static void main(String[] args) {
    NotSpecialtyDoctor doctor = new NotSpecialtyDoctor("lisi","2001","Ameirican",3000);
    System.out.println(doctor);
    }
    }
    楼主好运!
      

  2.   

    public class NotSpecialtyDoctor extends Doctor {
    private int salary;
    public NotSpecialtyDoctor( String name,String ID, String address,int salary) {super(name, ID, address);
    this.salary=salary;
    }
    public static void main(String[] args) {
    NotSpecialtyDoctor doctor = new NotSpecialtyDoctor("lisi","2001","Ameirican",3000);
    System.out.println(doctor.name+doctor.ID+doctor.address+doctor.salary);
    }
    }
    class Doctor
    {
    String name,ID;
    String address;
    public Doctor(String name,String ID,String address)
    {
    this.name=name;
    this.ID=ID;
    this.address=address;
    }
    }
      

  3.   

    楼主类属性都是private的,不要改了楼主的意思,这样是不是破坏了类的封装性呢?