单选题
欲构造ArrayList类得一个实例,此类继承了List接口,下列哪个方法是正确的( )
A
ArrayList myList = new Object();
B
List myList = new ArrayList();
C
ArraylList myList = new List();
D
List myList = new List();
答案解析
正确答案:B
解析:
这道题目考察的是Java中接口与类的关系以及如何正确地创建对象实例。我们逐一分析每个选项:
A. ArrayList myList = new Object();
这个选项尝试将myList声明为ArrayList类型,但尝试用Object的实例来初始化它。这是不正确的,因为ArrayList是Object的子类,但Object不是ArrayList,所以不能用Object的实例来赋值给ArrayList类型的变量。此外,这样做也无法利用ArrayList提供的特定功能。
B. List myList = new ArrayList();
这个选项是正确的。这里myList被声明为List接口的类型,而ArrayList是实现了List接口的类。在Java中,你可以使用接口类型的引用来指向实现了该接口的类的实例。这样做的好处是提高了代码的灵活性和可扩展性,因为以后如果需要更换实现(比如换成LinkedList),只需要改变实例化的部分,而不需要修改引用变量的类型。
C. ArraylList myList = new List();
这个选项有几个错误。首先,ArraylList拼写错误,应该是ArrayList。其次,尝试用List的实例来初始化ArrayList类型的变量是不允许的,因为List是一个接口,不能直接实例化。正确的做法应该是用实现了List接口的类的实例来初始化,如new ArrayList()。
D. List myList = new List();
这个选项也是错误的。List是一个接口,不能直接实例化。需要用一个实现了List接口的类的实例来初始化,比如new ArrayList()或new LinkedList()。
综上所述,正确答案是B,因为它正确地使用了接口类型的引用来指向实现了该接口的类的实例,既符合Java的类型安全原则,也提高了代码的灵活性和可扩展性。
A. ArrayList myList = new Object();
这个选项尝试将myList声明为ArrayList类型,但尝试用Object的实例来初始化它。这是不正确的,因为ArrayList是Object的子类,但Object不是ArrayList,所以不能用Object的实例来赋值给ArrayList类型的变量。此外,这样做也无法利用ArrayList提供的特定功能。
B. List myList = new ArrayList();
这个选项是正确的。这里myList被声明为List接口的类型,而ArrayList是实现了List接口的类。在Java中,你可以使用接口类型的引用来指向实现了该接口的类的实例。这样做的好处是提高了代码的灵活性和可扩展性,因为以后如果需要更换实现(比如换成LinkedList),只需要改变实例化的部分,而不需要修改引用变量的类型。
C. ArraylList myList = new List();
这个选项有几个错误。首先,ArraylList拼写错误,应该是ArrayList。其次,尝试用List的实例来初始化ArrayList类型的变量是不允许的,因为List是一个接口,不能直接实例化。正确的做法应该是用实现了List接口的类的实例来初始化,如new ArrayList()。
D. List myList = new List();
这个选项也是错误的。List是一个接口,不能直接实例化。需要用一个实现了List接口的类的实例来初始化,比如new ArrayList()或new LinkedList()。
综上所述,正确答案是B,因为它正确地使用了接口类型的引用来指向实现了该接口的类的实例,既符合Java的类型安全原则,也提高了代码的灵活性和可扩展性。
相关知识点:
ArrayList实例创建用List接口
相关题目
单选题
在Scrum敏捷模型中,负责Scrum价值观与流程的实现的人员是:()
单选题
研发云各全景视图中的“质量”栏统计的是Sonar和Fortify什么范围的扫描结果:
单选题
研发云中不会与自动化测试脚本关联的是
单选题
研发云平台制品上传或下载的认证密码是哪个?
单选题
pod处于反复重启的状态,可能的原因是以下的()
单选题
测试人员在拿到开发组提交过来的一个软件版本时,首先进行的测试是
单选题
以下关于自动化测试说法错误的是
单选题
研发云平台的制品晋级是指从()仓库晋级到()仓库?
单选题
以下关于制品上传步骤中docker制品描述正确的是
单选题
根据“中国电信软件研发规范”,研发云平台上测试严重等级的划分是
