java 第八课 类的继承

5.1 类的继承

调用父类构造方法 子类不会继承父类的构造方法,但有的时候子类构造方法里需要调用父类构造方法的初始化代码。
例 写出下面程序的执行结果。
class Base{
protected double size;
public Base(){
size=0; System.out.println(“Base类无参构造”);
}
public Base(double s){
size=s;System.out.println(“Base类有参构造”);
}
}

public class Sub extends Base{
private String color;
public Sub(){
color=“blue”;System.out.println(“Sub类无参构造”);
}
public Sub(String c){
color=c;System.out.println(“Sub类有参构造”);
}
public static void main(String[] args){
Sub s1=new Sub(); Sub s2=new Sub(“red”);
}
}

要在子类中显式调用直接父类带参数的构造方法,可通过super()调用来实现。例如,
public Sub(double s,String c){
super(s); //调用Base类中带一个参数的构造方法
color=c;
System.out.println(“Sub类有参构造”);
}

注意:super调用和this调用很像,区别在于super调用的是其父类的构造方法,而this调用的是同一个类中重载的构造方法。因此,使用super调用父类构造也必须出现在子类构造执行体的第一行,所以this调用和super调用不会同时出现。

子类构造方法调用父类构造方法分如下几种情况:
子类构造方法执行体的第一行代码使用super显示调用父类构造方法,系统将根据super调用里传入的实参列表调用父类对应的构造方法。
子类构造方法执行体的第一行代码使用this显示调用本类中重载的构造方法,系统将根据this调用里传入的实参列表调用本类另一个构造方法。执行本类中另一个构造方法时即会调用父类的构造方法。
子类构造方法执行体中既没有super调用,也没有this调用,系统将会在执行子类构造方法之前,隐式调用父类无参数的构造方法。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92564 人正在系统学习中 相关资源:SRTApp:学生投票追踪器-其它代码资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年5月4日
下一篇 2015年5月4日

相关推荐