类的继承

*调用父类的构造方法

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

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调用,系统将会在执行子类构造方法之前,隐式调用父类无参数的构造方法。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值