关于实现类

关于实现类

1、接口的实现类是什么?有什么作用?

2、为什么要创建实现类的对象,但类型却是接口??UserService userService = new UserServiceImpl();

正在回答

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

2回答

同学你好!

  1. 接口引用实现类,不是对接口进行实例化,而是接口的引用指向实现类对象。这是java多态的体现:

  2. 一个接口类型的引用变量来引用实现接口的类的实例,当这个引用调用方法时,它会根据实际引用的类的实例来判断具体调用哪个方法(属性你可以忽略)

  3. 这么使用就是多态的一种体现。同时也是面向接口编程。接口可以有多个实现类,如果现在你使用这个实现类接收,也许哪一天你需要换成其它的实现类呢?这时你只要将new的实现类对象换成你想要的就行了, 其它地方的代码根本不需要改动。

  4. 如果你觉得不好理解,建议你可以先记住,多练习慢慢的来理解,使用多了就明白了

祝学习愉快~



  • 敏捷丶 提问者 #1
    还有一点就是,如果一个接口有多个实现类,那比如,每个实现类至少有一个重写方法,那接口里不就有多个方法了吗?那如果接口里有多个要被重写的方法,那每个实现类不应该都要实现这些方法吗
    2020-02-12 14:28:53
  • 好帮手慕柯南 回复 提问者 敏捷丶 #2
    同学你好,每个实现类都是需要实现接口的所有方法的。但是你可以在方法中写不同的代码。从而达到不同的功能。祝学习愉快~
    2020-02-12 16:36:39
好帮手慕柯南 2020-02-11 17:01:06

同学你好!

  1. 接口的是实现类就是实现了接口的类。作用是用来完成具体的功能。这里是面向接口编程。

    你可以这么理解:

    接口 = 做什么,但不指定你怎么做
    实现 = 完成接口规定的任务,属于具体办事的

  2. 接口引用指向实现类是多态的一种体现。

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


  • 提问者 敏捷丶 #1
    那创建的实现类对象是实现接口的啊,他有的属性接口可能没有啊,这怎么还可以是接口的类型呢
    2020-02-11 20:13:33
  • 提问者 敏捷丶 #2
    然后比如下面的调用,userService.login() 但userService不是接口的对象吗,而且接口不是抽象类无法被实例化吗? 还有就是login()方法最终是在实现类中被重写的啊,那为什么通过接口可以调用实现类的方法?
    2020-02-11 20:25:14
  • 提问者 敏捷丶 #3
    我可以理解这样写很方便,就是具体工作交给实现类,但我就是理解不了这个定义是个什么规则
    2020-02-11 20:30:51
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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