首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

帮忙分析这段代码的错误,arraylist类型转换有关问题

2011-12-22 
帮忙分析这段代码的错误,arraylist类型转换问题Java codeimport java.util.ArrayListpublic class Vehicl

帮忙分析这段代码的错误,arraylist类型转换问题

Java code
import java.util.ArrayList;public class Vehicle {       public void run(){          System.out.print("Vruum");      }     public void stop(){         System.out.print("stop!");      }  }      class Car extends Vehicle{        public void run(){          System.out.print("Car vruum");        }      public static void main (String... args){          ArrayList<Vehicle> cars = new ArrayList<Car>();          cars.run();      }  } 

分析详细的分多 :)

[解决办法]
ArrayList<Vehicle> cars = new ArrayList<Car>(); 
ArrayList<Vehicle>这个整体代表一个类型
ArrayList<Car>这个整体代表一个类型,

又继承关系的Vehicle和Car,而ArrayList<Vehicle>,ArrayList<Car>没又这层关系,所以类型不兼容,错误。

修改:
ArrayList<? extends Vehicle> cars = new ArrayList<Car>(); 
表示可以基类为Vehicle的所有类。
[解决办法]
Java code
import java.util.ArrayList;public class Vehicle {       public void run(){          System.out.print("Vruum");      }     public void stop(){         System.out.print("stop!");      }  }      class Car extends Vehicle{        public void run(){          System.out.print("Car vruum");        }      public static void main (String... args){          //还有,这句话不报错吗?我的jdk1.5         ArrayList<Vehicle> cars = new ArrayList<Car>();          //cars.run(); //这句话出错把,应该改为          cars.add(new Car());          cars.get(0).run();     }  } 

热点排行