Java super

 

  接下来,我们准备为大家介绍“super”。

 

  super关键字:代表当前子类所继承的父类,可以通过super调用父类中的构造函数或方法。

 

  使用super关键字的必要性:因为,在继承时,子类是不会继承父类的构造函数,所以,当我们需要在

              子类中调用父类的构造函数时就需要使用super关键字了。

 

  super调用父类构造函数的语法格式

     super();

     super(参数1,参数2,...参数n);

 

 语法格式分析:

     (1)super(),该格式代表着父类中没有参数的构造函数。

     (2)super(参数1,参数2,...参数n) ,该格式代表着父类中带有参数的构造函数,

        在使用些格式调用时,它会根据参数到父类中寻找匹配的构造函数。

     (3)super关键字需要在子类中的构造函数里面调用,并且必须是第一行调用。

 

 

 

  super调用父类方法的语法格式

     super.方法名(参数);

 

   语法格式分析:

      (1)以super开始。

      (2)一个点号。

      (3)要调用的父类方法名,以及一对小括号与对应的参数。

 

 

  使用super关键字调用父类方法的必要性

   经过前面的学习,大家都可以知道,当子类继承了父类以后,就可以直接访问它里面的非私有的方法,那么,为什么还要使用super 来调用方法呢?

   原因就是,当我们在子类中对父类中的方法进行了重新的实现以后,但是,我们又希望可以调用到父类中原有的方法时,那么,我们就需要使用super关键字才可以调用到父类中的方法了。

 

 

 

  接下来,我们结合例子作进一步的学习。

 

例子:

 

//----------------------------------------------------------------------------------------------//

//定义了wp类

//----------------------------------------------------------------------------------------------//

class wp

{

  int wpx;  //定义了属性wpx

 

  wp()     //构造函数wp

  {

    wpx = 0;

  }

 

  void mx()    //定义了mx方法

  {

     wpx = wpx + 1;

  }

}

 

class Gun extends wp

{

  int gx;

  Gun  //构造函数

  {

     super();   //调用了父类wp中的构造函数wp() ,

             必须是构造函数中的第一行调用,否则会报错。

     gx = 0;

  }

 

  void mx()     //对父类中的mx方法进行了重新的实现,即在子类中覆盖了父类的mx方法。

  {

      gx = gx + 2;

  }

 

  void fmx()

  {

    mx();      //调用了当前子类中的mx方法。

    super.mx();  //调用了父类中的mx方法,因为在子类中对mx方法进行了重新实现,

             所以,需要通过super才可以调用父类中的mx方法。

  }

}

      

 

  非常好,现在,我们已经掌握了Java中的“super”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”

 

  不要停留在理论规则上面,快动起来吧!

    

(通过游戏模式学习与训练,需要在电脑上运行)

进入游戏学习与训练