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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 方志亮 中级黑马   /  2012-9-1 21:41  /  1885 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


9 个回复

倒序浏览
创建一个weekday类的子类对象
回复 使用道具 举报
这是一个匿名内部类,这个匿名内部类继承自WeekDay这个抽象类,所以它必须实现WeekDay中的抽象方法nextday。建议看看视频中讲解匿名内部类的部分应该就懂了。
回复 使用道具 举报
魏亮 发表于 2012-9-1 21:50
创建一个weekday类的子类对象

子类名可以和父类的一样?
回复 使用道具 举报
黑马_许芸 发表于 2012-9-1 21:56
这是一个匿名内部类,这个匿名内部类继承自WeekDay这个抽象类,所以它必须实现WeekDay中的抽象方法nextday ...

就是看了张孝祥老师的增强视频才问的
回复 使用道具 举报
方志亮 发表于 2012-9-1 21:58
子类名可以和父类的一样?

因为这是以匿名内部类的方式创建子类对象,直接用的父类的引用指向子类的对象。
回复 使用道具 举报
魏亮 发表于 2012-9-1 22:01
因为这是以匿名内部类的方式创建子类对象,直接用的父类的引用指向子类的对象。 ...

明白了  谢谢
回复 使用道具 举报

     从那个new 开始  到后面那个分号为止,就是创建了 一个WeekDayl类的子类对象,而new后面紧跟的{}里 写的是WeekDay类的子类重写了WeekDay类中的nextday()方法,这一种是匿名的写法。    而为什么new前面是用WeekDay类型的sun引用去指向创建出来的子类对象呢? 其实这就是多态的表现。

  
回复 使用道具 举报
这是匿名内部类的写法,匿名内部类必须是继承别的类或者实现了接口。在你的程序中new后面的实际上一个子类对象,并不是父类WeekDay的对象,这只是多态的一种表现(父类引用指向子类对象)至于子类对象的nextday方法是对父类WeeDay中nextday的覆盖,因为子类想通过这个函数实现不一样的功能才进行覆盖,如果是实现的接口,接口中方法必须进行覆盖。
回复 使用道具 举报
方志亮 发表于 2012-9-1 22:00
就是看了张孝祥老师的增强视频才问的

我知道啊。我也刚刚看了这个地方。我想你没看懂应该是对匿名内部类不太了解吧,所以建议看看匿名内部类的视频
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马