第二章 (2)重写和继承关系中的构造方法

来源:互联网 发布:30岁程序员vs公务员 编辑:程序博客网 时间:2024/06/06 12:38

1.在子类中可以根据需求对从父类继承的方法进行重新编写,称为方法的重写或方法的覆盖。方法重写必须满足以下要求

重写方法和被重写方法必须具有相同的方法名。

重写方法和被重写方法必须具有相同的参数列表。

重写方法的返回值类型必须和被重写方法的返回值类型相同或是其子类。

重写方法不能缩小被重写方法的访问权限。

2.继承关系中的构造方法

实例

public Dog(String name.String strain){

super(name);

this.strain=strain;

}

3.继承条件下构造方法的调用规则如下。

如果子类的构造方法中没有通过super显示调用父类的有参构造方法,也没有通过this显示调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法。在这种情况下,有没有“super()”;语句,效果都是一样的。

如果子类的构造方法中通过super显示调用父类的有参构造方法,则将执行父类相应的构造方法,而不执行父类无参构造方法。

如果子类的构造方法中通过this显示调用自身的其他构造方法,则在相应构造方法中应用以上两条规则。

特别注意的是,如果存在多级继承关系,则在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直到执行顶级父类Object类的无参构造方法为止。

4.当执行“pgdt=new postGraduate();”时,调用构造方法postGraduate(),在postGraduate()构造方法中,首先调用其父类的构造方法Student()方法时,又会调用其(Student类)父类的构造方法Person(),在执行Person()方法时会调用它的直接父类Odject的无参构造方法,该方法内容为空。最终输出的结果依次是Object()、Person()、Student()和Post

0 0
原创粉丝点击