在类中,不写构造方法,相当于执行了默认的无参构造方法;写了有参构造方法,则只执行有参构造方法,默认的无参构造方法则会被屏蔽掉;若想拥有有参和无参构造方法,则同时显示地写出这两种构造方法。
1. 类的继承
使用extends
来继承父类。
- 不管子类的构造器中是否有参,甚至是是否含有构造器,均会执行父类的无参构造器,即父类的无参构造器隐式地包含在子类的构造器中。
super()
存在。 - 若子类中具有有参构造器,如果是自己独有的构造器,则会继承父类的无参构造器(如果父类中不存在无参构造器,此时会报错);如果是对父类构造器的重载,则在子类的构造器中必须含有
super(XXX)
,执行父类中相应的被重载的构造器,再执行子类中重载父类构造器后的子类构造器;若子类中没有写出super(XXX)
字样,则子类的构造器默认执行父类的无参构造器,相应的子类构造器中的参数也不会被传入到对象中。
相应的分类别的多种情况,可见博文的最下面的长图。
example1
public class ManKind {
public String name;
public int sex;
public int salary;
public void setSalary(int salary){
this.salary = salary;
}
public void setSex(int sex){
this.sex = sex;
}
public void setName(String name){
this.name = name;
}
public void manOrwoman(){
if(this.sex == 1)
System.out.println("man!");
else if(this.sex == 0)
System.out.println("woman!");
else
System.out.println("Error!");
}
public void employeed(){
if(this.salary > 0)
System.out.println