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