ArrayList CoursetoSelect=new ArrayList;
也可以,只不过List CoursetoSelect=new ArrayList();
不过是利用Java多态特性,像类的多态性(子类继承类并重写其方法),方法多态呢是方法重载,还有你说的这个是接口多态,类实现接口的方法,而不同的类实现接口可以用不同的方式从而表现不同的行为。在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。