黑马程序员技术交流社区

标题: 求教关于匿名内部类的问题 [打印本页]

作者: 海贼王019    时间: 2015-4-6 22:03
标题: 求教关于匿名内部类的问题
黄色框起来的地方我不明白 , 不是抽象的不能实例化吗,还有为什么方法重写要写到它的里面呢

2015-04-06_220002.png (113.39 KB, 下载次数: 25)

2015-04-06_220002.png

作者: hc5143    时间: 2015-4-6 22:06
其实,目的很简单。节约内存!当方法执行完。他就自动释放了!毕竟手机的空间不大。适合安卓软件开发!  他相当与 指向了Object类
作者: 海贼王019    时间: 2015-4-6 22:13
hc5143 发表于 2015-4-6 22:06
其实,目的很简单。节约内存!当方法执行完。他就自动释放了!毕竟手机的空间不大。适合安卓软件开发!  他 ...

为什么能够  Inter in = new Inter()  这样实例化呢 ,不是借口不可以这样实例化的吗
作者: hc5143    时间: 2015-4-6 22:52
其实这个并不是 实例化了Inter类!     就是多态的思想!  new Inter(){}这个是Inter的实现类而已!!!并不是Inter类!
作者: 海贼王019    时间: 2015-4-6 22:54
hc5143 发表于 2015-4-6 22:52
其实这个并不是 实例化了Inter类!     就是多态的思想!  new Inter(){}这个是Inter的实现类而已!!! ...

还能取相同的名字啊??
作者: hc5143    时间: 2015-4-6 22:56
匿名内部内实际上是  new出来一个  实现了接口的子类对象     父类指向子类   语法是new    类名或者接口名(){重写方法}          它的语法是这个,  Inter in = new Inter()    别把  new Inter()理解为父类的实现   new Inter(){重写方法}  这个才是整体
作者: 快乐ABC    时间: 2015-4-7 00:08
如果Inter  in = new Inter();后面不跟大括号,就是实例化接口了,不允许。但后面跟了大括号就是实例化了他的子类,创建了子类对象。
作者: 海贼王019    时间: 2015-4-7 09:51
快乐ABC 发表于 2015-4-7 00:08
如果Inter  in = new Inter();后面不跟大括号,就是实例化接口了,不允许。但后面跟了大括号就是实例化了他 ...

好吧 这个解释就结束了吧,虽然还是看着别扭




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