为什么在项目中使用List<String> list = new ArrayList<String>()而不是用ArrayList<Object> list = new ArrayList<>()

软件设计6大原则中的依赖倒置原则,高层模块不应该依赖低层模块,两者都应该依赖其抽象。
为什么在项目中使用List<String> list = new ArrayList<String>()而不是用ArrayList<Object> list = new ArrayList<>()_第1张图片

这里的list和接口都是抽象,依赖的类应该依赖抽象,而不是具体实现。 写成ArrayList<Object> list = new ArrayList<>(),那么依赖他的方法参数只能是ArrayList,不能是LinkedList,如果真的要修改具体实现就需要改多行代码,代码维护复杂。

所以我们在实际编程中,只要遵循一下几点:
1. 每个类尽量提供接口或者抽象类,或者两者都具备。
2. 变量的声明类型尽量是接口或者是抽象类。

你可能感兴趣的:(java面试题,java基础,list,java)