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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 280270738 中级黑马   /  2013-6-24 08:57  /  1347 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Super_Class 于 2013-6-24 18:23 编辑

Shap [] s =new Shap[3];Shap是一个抽象类。谁能给我解释下为什么抽象类能指向一个数组?

评分

参与人数 1技术分 +1 收起 理由
Super_Class + 1

查看全部评分

3 个回复

倒序浏览
就是一个类类型的数组吧,它虽然不能存放该抽象类的对象,但可以存放一些继承该抽象类并实现了抽象方法的类的对象。
回复 使用道具 举报
抽象类是不被实例化的,但是为什么可以定义抽象类数组呢,因为抽象类数组只是数组中的一种类型
类和int ,String是一样的,可以看做是一种类型,而抽象类数组中的元素存放的是继承该抽象类的类(该类不是抽象类)的对象,
希望对你有帮助。
public abstract class sh {
      public String h="hello";
}

public class aa extends sh {
}

public class text {
public static void main(String[] args) {
  aa ab=new aa();
        aa ab1=new aa();
  sh []a=new sh[]{ab,ab1};
  for(int i=0;i<a.length;i++){
   System.out.println(a[i].h);
  }
            
}
}
结果:
hello
hello

评分

参与人数 1技术分 +1 收起 理由
Super_Class + 1

查看全部评分

回复 使用道具 举报
集合就是为了解决这个问题。集合只能存储对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马