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

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

相关推荐
程似锦吖12 小时前
无中生有 之 从0开始写一个动态定时任务管理
java·开发语言
techdashen12 小时前
dial9:给 Tokio 装上“飞行记录仪“
java·数据库·redis
ShiJiuD66688899913 小时前
springboot基础篇
java·spring boot·spring
砚底藏山河13 小时前
python、JavaScript 、JAVA,定制化数据服务,助力业务高效落地
java·javascript·python
qq_4523962313 小时前
第六篇:《JMeter逻辑控制器:循环、条件和交替执行》
android·java·jmeter
humcomm13 小时前
Java 新特性2026年5月速览
java·开发语言
luck_bor13 小时前
集合进阶(Collections Set List)
java
敲敲千反田14 小时前
Spring AI
java·人工智能·spring
拽着尾巴的鱼儿14 小时前
spring 动态代理
java·后端·spring
gf132111114 小时前
python_【更新已发送的消息卡片】
java·前端·python