2-6中内部类实例的问题

2-6中内部类实例的问题

代码案例中,Person类为抽象类,是不允许实例化的。为什么在test.getRead(new Peroson(){}),这里的new Person()不就是在实例化Person类吗?两者是不是前后矛盾?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,

1、抽象类不可以实例化。这里不是创建了一个Person类的对象。

2、这里使用匿名内部类创建Person抽象类的子类对象,由于匿名内部类重新了read方法,所以这个匿名内部类就不是抽象的,可以创建对象。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 慕虎5485268 提问者 #1
    new Person(),怎么成了Person抽象类的子类对象?
    2020-07-22 21:47:46
好帮手慕小脸 2020-07-23 09:42:26

同学你好,视频中案例使用了继承式的匿名内部类,重写了父类的一个或多个方法。所以这里创建的不是Person对象,而是Person匿名子类的对象。

匿名子类重写了父类中的抽象方法,所以匿名内部类是Person的子类,可以继承重写父类中的方法。

http://img1.sycdn.imooc.com//climg/5f18eaea09dffe9208390337.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师