接口指向实现类与实现类指向实现类

接口指向实现类与实现类指向实现类

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

老师,第一句代码:UserDao userDao=new UserDaoImpl();如果换成UserDaoImpl userDaoImpl=new  UserDaoImpl();也就是两边类型一致。

这两种有什么区别?第一种也就是常用的接口指向实现类的优势在哪里?第一种的话,调用增删改查方法,调用的是自己的吗?还是实现类的?

正在回答

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

2回答

同学你好!

  1. 是实现类哦,接口指向实现类

  2. 多态的作用:

    1)不必编写每一子类的功能调用,可以直接把不同子类当父类看,屏蔽子类间的差异,提高代码的通用率/复用率 
    2)父类引用可以调用不同子类的功能,提高了代码的扩充性和可维护性

  3. 不使用可以,但是使用是目前比较广泛的应用。这样为了更加符合面向接口编程的思想。

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

好帮手慕柯南 2019-11-22 16:47:11

同学你好!

  1. 它们的区别,同学你的理解是正确的

  2. 接口指向实现类是可以说是多态的一种体现。它的好处举例:假设有2个类实现了一个接口,在使时需要给demo()方法传递实现类这个对象。如果此时demo方法的参数是实现类,那么我们需要写两个方法。如果demo方法的参数是接口,就只需要一个方法就可以。

  3. 接口本身是不能实例化的,所以调用的是实现类的方法。

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

  • 提问者 天才少年25 #1
    UserDao userDao=new UserDaoImpl()中的userDao对象本质上是UserDao接口,还是UserDaoImpl这个实现类呢?多态的作用到底是什么呢?不用多态也可以实现啊。就直接:UserDaoImpl userDaoImpl=new UserDaoImpl(),也没问题啊?
    2019-11-22 16:59:56
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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