**父类:**
package demo;
public class Person {
public String id;//身份证号码
private String name;//姓名
private String sex;//性别
/**
* 无餐构造函数
*/
public Person(){
//初始化本类变量
this.id ="sss";
this.name="zz";
this.sex="s";
}
/**
* 有参构造函数,子类通过super调用
* @param id
* @param name
* @param sex
*/
public Person(String id, String name, String sex) {
//初始三个变量
this.id = id;
this.name = name;
this.sex = sex;
}
public void print(){
//输出 三个变量
System.out.println(id);
System.out.println(name);
System.out.println(sex);
}
}
**子类:**
package demo;
public class Employee extends Person {
private int mySalary;
/**
* 有参构造函数
* @param id
* @param name
* @param sex
* @param mySalary
*/
public Employee(String id, String name, String sex,int mySalary) {
//调用父类的有参构造函数
super(id, name, sex);
//输出 父类的 id
System.out.println(super.id);
//初始化 本类的 mySalary 变量
this.mySalary = mySalary;
}
/**
* 无参构造函数
* 执行顺序:
* 父类的无参的构造函数(初始化父类的三个变量) 本类的print方法 初始化本类的mySalary变量
*/
public Employee(){
//本类的print方法(此时,本类的mySalary还没初始化,所以是0)
this.print();
//初始化本类的mySalary变量
this.mySalary = 5000;
}
public void print(){
//调用父类的print方法
super.print();
//输出本类的 mySalary
System.out.println(mySalary);
}
}
**测试类:**
package demo;
public class Test {
public static void main(String[] args) {
//调用子类有参构造函数 初始化父类和子类各自变量
Employee e = new Employee("05063811", "zhangzongyao", "nan", 5000);
//调用子类 print方法
e.print();
//调用无参构造函数 初始化父类和子类各自变量
Employee e1 = new Employee();
//调用子类 print方法
e1.print();
}
}
``
**输出结果:**
05063811
05063811
zhangzongyao
nan
5000
sss
zz
s
0
sss
zz
s
5000