黑马程序员技术交流社区

标题: 关于抽象类的小问题 [打印本页]

作者: Alan    时间: 2013-4-19 14:55
标题: 关于抽象类的小问题
抽象类是不能建立对象的,为什么在建立抽象类的时候可以写:new 抽象类名{};
这样我总觉的就是建立对象,该如何理解呢
作者: 先小涛    时间: 2013-4-19 15:07
这不是建立抽象类实例,而是建立该抽象类的子类的对象。因为有匿名内部类机制,可省略对象名称。你再回头看下老毕关于匿名内部类的视频。
作者: 杨同旺    时间: 2013-4-19 15:25
抽象类是不能建立对象的

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

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

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

而实际上new出来的是,继承于这个抽象类的子类的实例对象,而这个子类不是抽象的,所以可以new的,这种写法只是继承并实例化的一个简写方式.
作者: 庄生晓梦    时间: 2013-4-19 17:09
抽象类不能创建对象,因为调用抽象类中的方法没有意义;

new 抽象类名{}是匿名内部类的格式。
在视频中匿名内部类的格式是:new 父类或接口(){}
其实是匿名内部类就是一个匿名子类对象。
作者: up.yfei    时间: 2013-4-19 17:46
new 抽象类名{}是创建匿名内部类的格式,new出来的是其子类对象,可以直接访问其中的方法。
作者: 刚金波    时间: 2013-4-19 18:11
抽象类是不能建立对象的
new 抽象类名{}是建立匿名内部的格式
可能刚学到抽象类看着会有点迷,等看到匿名类的时候就好了
作者: 伊廷文    时间: 2013-4-19 18:40
用new 抽象类名{}格式,并不是给抽象类建立对象,

这种格式所代表的是匿名内部类
作者: Alan    时间: 2013-4-20 01:17
格式很清楚,需要怎么去接受
作者: 黄玉昆    时间: 2013-4-20 14:49
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2