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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 遗忘的青春年华 中级黑马   /  2014-3-2 23:38  /  1288 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

abstract Fruit是一个抽象类,底下有apple和bananer两个继承Fruit类,Fruit f = new Fruit()是错的,但是Fruit[] f = new Fruit[10];这就是对的了,我大致明白一点,是数组对象,不过不太理解的是:为什么这个对象数组可以存储他的子类??就像f[0] = new apple();

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

5 个回复

倒序浏览
抽象类不能被实例化,所以Fruit 不能创建自己对象。  
Fruit的子类是正常类,所以能够实例化。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
Fruit[] f = new Fruit[10];等同10个这个Fruit f = null;    这里并没有创建对象。   

评分

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

查看全部评分

回复 使用道具 举报
榨菜 发表于 2014-3-3 14:08
Fruit[] f = new Fruit[10];等同10个这个Fruit f = null;    这里并没有创建对象。

明白了,谢谢:loveliness:
回复 使用道具 举报
抽象来说,“电器“就是抽象类,“电视机“是继承了“电器”的,在“电器”类中,你创建了他的对象,他有个use()[使用]函数,那电器的使用可就不好说了,”电视机“是看的,“洗衣机“是洗衣服的,“面包机“是烤面包的,你“机器“的使用有什么意义??是那个意义???由此可见Fruit f = new Fruit()是错的就无可厚非了

评分

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

查看全部评分

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