A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 赵宇 中级黑马   /  2012-9-20 12:29  /  1623 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 赵宇 于 2012-9-25 08:41 编辑

1、2、3、4  哪个可以编译通过?说出理论依据

public class ArrayTest6
{
public static void main(String[] args)
{
  I[] i = new I[2];                                                                                  1、
  
  I i = new I();                                                                                       2、

  I j = null;                                                                                            3、
  

  i[0] = new C();                                                                                   4、

   i[1] = new C();  
}
}
interface I
{
}
class C implements I
{
}

评分

参与人数 2技术分 +1 黑马币 +30 收起 理由
王德升 + 30 去上面通道把名字改下,谢谢合作!.
黑马_许芸 + 1 赞一个!

查看全部评分

6 个回复

倒序浏览
一二个都是同样的原理,因为是接口,所以不能实例化,错误

第三个肯定能通过  因为只是定义一个对象,并没有实例化

至于第四个 我附张图给你看说明吧:

q1.png (14.39 KB, 下载次数: 29)

q1.png
回复 使用道具 举报
张小龙 发表于 2012-9-20 12:47
一二个都是同样的原理,因为是接口,所以不能实例化,错误

第三个肯定能通过  因为只是定义一个对象,并没 ...

第一个是可以的,你查查资料。
回复 使用道具 举报
I j = null;
这个是可以的,表示不指向任何值。
i[0] = new C();   
这个也是可以的  ,多态。
回复 使用道具 举报
吕书凯 发表于 2012-9-20 12:53
public class ArrayTest6
{
public static void main(String[] args)

前两个对了I
j = null;
这个是可以的,表示不指向任何值。
i[0] = new C();   
这个也是可以的  ,多态
回复 使用道具 举报
本帖最后由 夏诗瑶 于 2012-9-20 13:25 编辑

其实吧,上面同学都说了答案了。
但是,一可以编译通过,二不能编译通过很多人不理解。这里就简单介绍下:
一其实初始化了一个数组,数组里面放的是接口类型。并没有具体初始化到对象。

所以,一般自定义类型用数组初始化的时候都需要 初始化两次,例子如下:
class Person {
        private String name;
        private int age;

        public Person(String name, int age) {
                this.name = name;
                this.age = age;
        }

}

public class PersonTest {

        public static void main(String[] args) {
                Person[] ps = new Person[3];// 初始化用于存放3个人类型的数组

                ps[0] = new Person("张三", 15);//注意这:虽然上面"初始化化了三个人",但实际用到每个人的时候,还是要new对象的               
                ps[1] = new Person("李四", 16);
                ps[2] = new Person("王五", 17);

        }
}

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马