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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Alan 中级黑马   /  2013-4-19 14:55  /  1730 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

抽象类是不能建立对象的,为什么在建立抽象类的时候可以写:new 抽象类名{};
这样我总觉的就是建立对象,该如何理解呢

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

8 个回复

倒序浏览
这不是建立抽象类实例,而是建立该抽象类的子类的对象。因为有匿名内部类机制,可省略对象名称。你再回头看下老毕关于匿名内部类的视频。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
抽象类是不能建立对象的

采用new 抽象类名{}格式,并不是给抽象类建立对象,

这种格式所代表的是匿名内部类,

这个内部类是继承于上面的抽象类的,也要重写抽象类中的抽象方法,

而实际上new出来的是,继承于这个抽象类的子类的实例对象,而这个子类不是抽象的,所以可以new的,这种写法只是继承并实例化的一个简写方式.

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
抽象类不能创建对象,因为调用抽象类中的方法没有意义;

new 抽象类名{}是匿名内部类的格式。
在视频中匿名内部类的格式是:new 父类或接口(){}
其实是匿名内部类就是一个匿名子类对象。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
new 抽象类名{}是创建匿名内部类的格式,new出来的是其子类对象,可以直接访问其中的方法。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
抽象类是不能建立对象的
new 抽象类名{}是建立匿名内部的格式
可能刚学到抽象类看着会有点迷,等看到匿名类的时候就好了

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
用new 抽象类名{}格式,并不是给抽象类建立对象,

这种格式所代表的是匿名内部类
回复 使用道具 举报
Alan 中级黑马 2013-4-20 01:17:58
8#
格式很清楚,需要怎么去接受
回复 使用道具 举报
黄玉昆 黑马帝 2013-4-20 14:49:36
9#
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马