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”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)