接口作为返回类型与类作为返回类型一样吗?

LinkedList<Integer> q = new LinkedList<>();和Queue<Integer> q = new LinkedList<>();一样吗?

我现在想创建一个队列对象,正常情况下我会这样写:Queue<Integer> q = new Queue<>();

但是你仔细想想,这样写真的对吗?

Queue是接口,但是接口是不能实例化一个对象的

那怎么办?

先看看LinkedList部分源代码

java 复制代码
public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable

可以看到 LinkedList实现了Deque(Deque继承了Queue),所以可以用LinkedList类实例化一个对象,而返回类型仍然是Queue接口,这样就创建好了一个队列(java创建一个队列理解起来真tm麻烦,还不如用c++呢)

相关推荐
kong79069283 分钟前
SpringCache缓存
java·spring·缓存
程序猿小蒜7 分钟前
基于springboot的汽车资讯网站开发与实现
java·前端·spring boot·后端·spring
それども7 分钟前
SpringBoot 切面AOP获取注解为null
java·spring boot·spring
vx_bisheyuange9 分钟前
基于SpringBoot的热门旅游推荐系统设计与实现
java·spring boot·后端·毕业设计
代码不停9 分钟前
Java分治算法题目练习(快速/归并排序)
java·数据结构·算法
代码or搬砖10 分钟前
SpringBoot整合SpringMVC
java·spring boot·后端
程序定小飞10 分钟前
基于springboot的汽车资讯网站开发与实现
java·开发语言·spring boot·后端·spring
Kapaseker18 分钟前
Java 26 的新特性
java
糖纸风筝36 分钟前
Java指南:eclipse、java-activemq与测试验证
java·开发语言·学习
小坏讲微服务39 分钟前
整合Spring Cloud Alibaba与Gateway实现跨域的解决方案
java·开发语言·后端·spring cloud·云原生·gateway