老师,关于实现类对象赋值给接口引用

老师,关于实现类对象赋值给接口引用

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

老师,问题一:这些动物小丑创建的实例可以赋值给接口引用是吗?

         问题二:接口引用调用到底调用的是哪个类的方法?

老师能否详细再讲解下,我有点懵!

正在回答

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

1回答

        同学你好,1、这些动物小丑创建的实例时可以赋值给接口引用的,因为所有的子类都实现了IAct的接口,一个实现类可以通过它的接口来接收哦:

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

在java中,通过接口的引用指向了子类(实现类)的对象,就是多态的体现哦!所以这里可以直接通过接口来接收实现类哦!

        2、因为对象的实现在switch-case中,每次调用都只会有一个条件符合,对应只会有一个该条件下的实现类对象哦,比如当case是1的时候,只会实例化一个Bear对象!调用act方法的调用写在switch结构的外面,不同的子类对象调用的是不同的方法实现,例如:

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

所以对应在switch-case外调用这个不为null的的actor对象中的act等方法哦!

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

  • 无限精彩 提问者 #1
    是不是哪个类实例对象赋给接口引用,接口引用就调用哪个实例对象的方法?比如实例化Bear对象赋予接口引用,接口引用就调用Bear类里面重写接口里面的方法,这样理解对吗?
    2019-07-24 14:47:27
  • 好帮手慕小班 回复 提问者 无限精彩 #2
    同学的理解很正确哦,实例化Bear类,通过接口引用,就可以调用Bear类中的方法哦! 很棒呐! 继续加油~ 祝:学习愉快!
    2019-07-24 15:14:22
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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