冰山点水
我觉得楼上的理解有问题,我用简单的一句话来理解多态:父类的引用可以指向任何一个子类的对象。比如楼上的乐器父类Instrument的引用可以指向3种乐器对象中的任何一个,比如:Wind w=new Wind(),也可以是Instrument i=new Wind()q。其他两个也是如此。常见的一些多态例子:俄罗斯方块中的父类的引用可以指向7种不同形状的方块(分别为7个子类对象),这样方块出场的时候可以通过父类的引用随机生成不同形状的方块(子类对象),飞机大战中的飞机出场,植物大战僵尸中的僵尸出场都是通过多态的方式实现的。
我给点随机出场的大概代码:
父类Js 子类:Js1,Js2,Js3,Js4
//这个方法返回值类型只能使用父类(如果使用子类,那么就定死出场的僵尸了,无法实现随机),这样生成的僵尸可以是4个子类僵尸的任意一个(多态),保证随机性
随机出场方法:public Js chuchang(){
产生随机数rand:0~3
switch(rand){
case 0:return new Js1;
case 1:return new Js2;
case 2:return new Js3;
case 3:return new Js4;
}
}