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

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

相关推荐
闻哥5 分钟前
深入Redis的RDB和AOF两种持久化方式以及AOF重写机制的分析
java·数据库·spring boot·redis·spring·缓存·面试
jgyzl21 分钟前
2026.3.12 常见的缓存读写策略
java·后端·spring
ruanyongjing34 分钟前
Spring TransactionTemplate 深入解析与高级用法
java·数据库·spring
fengxin_rou39 分钟前
[Redis从零到精通|第六篇]:Redis的主从同步
java·数据库·redis·缓存
zhglhy40 分钟前
Java系统限流方法技术优劣
java·限流
xiaoye370841 分钟前
Spring Bean 生命周期
java·spring
6+h1 小时前
【Spring】Bean的生命周期详解
java·python·spring
冬夜戏雪1 小时前
面经摘录(五)
java·后端·spring
李昊哲小课1 小时前
Python CSV 模块完整教程
java·服务器·python
人道领域1 小时前
苍穹外卖:菜品分页查询与删除功能(保姆级详解)
java·开发语言·数据库·后端·spring