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

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++呢)

相关推荐
山北雨夜漫步几秒前
外卖心得day01
java
NE_STOP4 分钟前
springboot--pagehelper整合与日志处理
java
weixin_440784117 分钟前
Java线程池工作原理浅析
android·java·开发语言·okhttp·android studio·android runtime
ANGLAL12 分钟前
35.登录认证演进及双token机制
java
毕设源码-朱学姐14 分钟前
【开题答辩全过程】以 基于spring boot的摩托车合格证管理系统为例,包含答辩的问题和答案
java·spring boot·后端
独自破碎E22 分钟前
LCR005-最大单词长度乘积
java·开发语言
码农阿豪24 分钟前
影刀RPA与Java融合实践:打造高效智能的高铁票务解决方案
java·python·rpa
龚礼鹏31 分钟前
图像显示框架十一——BufferQueue的工作流程(基于Android 15源码分析)
java·网络·数据库
爬山算法32 分钟前
Hibernate(72)如何在NoSQL数据库中使用Hibernate?
java·nosql·hibernate
毕设源码-赖学姐32 分钟前
【开题答辩全过程】以 基于spring boot的国学诗词网站设计与实现--为例,包含答辩的问题和答案
java·spring boot·后端