Java 多态
接下来,我们准备为大家介绍“多态”。
多态:使用父类对象的位置也可以使用子类对象的情况就称为多态,
通俗来说就是,在程序的某个位置即可以使用父类对象,也可以使用子类对象,
但是,每一个时刻只能使用父类或子类对象中的其中一个,那么,就称为多态。
多态的条件:
(1)子类中的方法覆盖了父类中的同名方法。
(2)在某个方法中,通过父类定义对象作为参数,然后,在方法中,通过参数去调用
子类覆盖父类中的同名方法,由于方法名字在子类与父类中是同名的,
所以,具体要调用子类中的方法还是父类中的方法,就要通过方法调用时所传递的参数来决定,
如果,传递的是子类的对象作为参数,则调用子类中的同名方法,
如果,传递的是父类的对象作为参数,则调用父类中的同名方法。
所以,就称为多态。
接下来,我们结合例子作进一步的学习。
例子:
//----------------------------------------------------------------------------------------------//
//定义了wp类
//----------------------------------------------------------------------------------------------//
class wp
{
int wpx; //定义了属性wpx
wp() //构造函数wp
{
wpx = 0;
}
void mx() //定义了mx方法
{
wpx = wpx + 1;
}
}
//----------------------------------------------------------------------------------------------//
//定义了Gun类,并继承了父类wp
//----------------------------------------------------------------------------------------------//
class Gun extends wp
{
int gx;
Gun //构造函数
{
gx = 0;
}
void mx() //对父类中的mx方法进行了重新的实现,即在子类中覆盖了父类的mx方法。
{
gx = gx + 2;
}
}
//----------------------------------------------------------------------------------------------//
//Mytest类是在第二章“Java开发环境搭建(2)” 学习时创建的
//----------------------------------------------------------------------------------------------//
public class MyTest
{
public static void main(String[] args) //入口方法main
{
wp p1= new wp(); //定义了对象p1
Gun g1 = new Gun(); //定义了对象g1
test ( p1 ); //传递了p1对象作为参数,而它是wp类的对象,
所以,test方法中的w1所调用的方法是wp类中的mx方法。
test ( g1 ); //传递了g1对象作为参数,而它是Gun类的对象,
所以,test方法中的w1所调用的方法是Gun类中的mx方法。
}
//定义了方法test,参数是wp类所定义的对象w1,而方法中通过参数w1去调用方法mx,
而具体要调用父类还是子类中的mx方法,就要看具体的参数是传递wp的对象还是传递Gun的对象了。
public static void test( wp w1 )
{
w1.mx();
}
}
非常好,现在,我们已经掌握了Java中的“多态”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)