StackTc 2018-02-22 10:03 采纳率: 90.9%
浏览 1292
已采纳

接口与实现类的问题有疑问

平时开发的时候 比如有 接口 A 跟实现类B
B实现了A接口
那么我们想要获取 这个对象会写 A a = new B();

为什么不直接写B b = new B();

  • 写回答

11条回答 默认 最新

  • KiterCher 2018-02-22 10:19
    关注

    1、面向接口编程思想。面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分
    2、回到你这个问题上,为什么我们不直接new 它的这个实现类,而是选择用这个接口引用去接收这个实现类的对象呢;就用最常用的 List list = new ArrayList();来举例;
    3、List list = new ArrayList();这样你就只能调用List接口里面定义好的方法,而不能使用你自己在ArrayList扩展的方法。ArrayList list = new ArrayList();接口就是定义了一些行为,它要求你应该做什么。
    假如你采用了面向接口编程方式,也就是第一种方式:List list = new ArrayList();
    就能通过接口很大限度上规范开发人员的实现规则,因为你现在只能调用接口的方法。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题