为了账号安全,请及时绑定邮箱和手机立即绑定

courses1的引用可以用List也可以用ArrayList 有区别吗?

courses1的引用可以用List也可以用ArrayList 有区别吗?

Meng7y 2017-06-27 20:44:03
public class TestStudent { //《?》可以用List的引用类型和ArrayList类型的引用。有什么区别吗 public ArrayList<Course> courses1; public TestStudent() { this.courses1 = new ArrayList<Course>();
查看完整描述

3 回答

已采纳
?
风中打伞的小孩

TA贡献73条经验 获得超20个赞

List是一个接口,而ArrayList是一个类。 
ArrayList继承并实现了List,有些属性和方法ArrayList有但是List没有。

引用的话,声明为List,以后可以改为List的其它实现类。

查看完整回答
1 反对 回复 2017-06-27
?
lijikai1937

TA贡献12条经验 获得超2个赞

public class TestStudent {
 public ArrayList<Course> courses1;
 public List<Course> courses11;
 public TestStudent(){
  this.courses1=new ArrayList<Course>();
  this.courses11=new ArrayList<Course>();
  
 }
}
class Course{
 
}

你说的引用应该是这个样子的把,我觉得引用就是一种指向的关系,是可以引用的,至于两个引用有什么区别,就是ArrayList的区别和List的区别了。你看一下,接口和类的关系,我们在实现接口的时候,必须要实现接口里面的所有方法,还有一些别的,但是我们还是可以在我们实现了这个类之后再去添加新的东西。List是ArrayList的规范,但是除了规范我们还可以有别的属于自己的东西。

还有就是接口不可以自己创建对象,不可以通过new关键字来实例,这个你应该知道把?我们可以List list = new ArrayList();

但是不能 List list=new List();这样是错的。而ArrayList list=new ArrayList();创建一对象则保留了ArrayList的所有属性。 所以他必须要借助它的实现类来完成。大概就这么多,我感觉这个问题真想说明白的话,真的很多啊,我也搞得不是太明白。

再往下等你学会所有的Java基础自己肯定就明白了,还有后面的反射之类的东西。

查看完整回答
1 反对 回复 2017-06-28
?
慕圣0830664

TA贡献41条经验 获得超26个赞

public ArrayList<Course> courses1;这一句,用List和ArrayList都可以,因为该语句只是定义了一个引用,并没有生成相关的实例对象。ArrayList实现了List接口,因为多态的关系这里List定义的引用同样适用于ArrayLsit。List是一个接口,接口可以定义一个引用,但不能new对象。

this.courses1 = new ArrayList<Course>(); 该语句new出了一个实例对象,所以这里不能换成List,必须换成List的实现类,只有实例类才能new出对象,接口和抽象类都不能new出对象,只能定义引用。

查看完整回答
1 反对 回复 2017-06-27
  • 3 回答
  • 1 关注
  • 1956 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信