类的继承

来源:互联网 发布:企业起名软件 编辑:程序博客网 时间:2024/06/05 13:55

*调用父类的构造方法

子类不会继承父类的构造方法,但有的时候子类构造方法里需要调用父类构造方法的初始化代码。

Eg

class BaseClass

{

       protected double size;

       public BaseClass()

       {

          size=0;

              System.out.println("Base类无参构造");

       }

       public BaseClass(double s)

       {

          size=s;

              System.out.println("Base类有参构造");

       }

}

 

public classSubClass extends BaseClass

{

       private String color;

       public SubClass()

       {

          color="blue";

         System.out.println("Sub类无参构造");

     } 

    public SubClass(String c,double d)

       {

        super(d);

          color=c;

              System.out.println("Sub类有参构造");

       }

       public static void main(String[] args)

       {

              SubClass sc1=new SubClass();

              SubClass sc2=newSubClass("red",0);

       }

}

当通过子类构造方法创建子类对象时,默认的先执行父类不含参数的构造方法,再执行子类构造方法。

要在子类中显示式调用直接父类参数的构造方法,可通过super()调用来实现。

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

*子类构造方法的调用父类构造方法分如下几种情况:

1、子类构造分那个发执行体的第一行代码使用super调用里传入的实参列表调用父类对应的构造方法。

2、

子类构造方法执行体的第一行代码使用this显示调用本类中重载的构造方法,系统将根据this调用里传入的实参列表调用本类另个构造方法。执行本类中另一个构造方法时即会调用父类的构造方法。

3、子类构造方法执行体中既没有super调用,也没有this调用,系统将会在执行子类构造方法之前,隐式调用父类无参数的构造方法。

 

原创粉丝点击