读书人

帮忙分析这段代码的错误arraylist类

发布时间: 2011-12-22 23:36:25 作者: rapoo

帮忙分析这段代码的错误,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();     }  } 

读书人网 >J2SE开发

热点推荐