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

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

相关推荐
BlockChain8882 分钟前
MPC 钱包实战(三):Rust MPC Node + Java 调度层 + ETH 实际转账(可运行)
java·开发语言·rust
Remember_9934 分钟前
【数据结构】Java集合核心:线性表、List接口、ArrayList与LinkedList深度解析
java·开发语言·数据结构·算法·leetcode·list
小旭95274 分钟前
【Java 面试高频考点】finally 与 return 执行顺序 解析
java·开发语言·jvm·面试·intellij-idea
陌路2012 分钟前
RPC分布式通信(2)---四种典型式线程池(1)
java·开发语言·c++
微露清风12 分钟前
系统性学习C++-第二十四讲-智能指针的使用及其原理
java·c++·学习
wenjianhai20 分钟前
若依(RuoYi-Vue-Plus)框架使用WebSocket
java·若依
Coder_Boy_20 分钟前
基于SpringAI的在线考试系统-核心模块的数据模型交互关系
java·数据库·人工智能·spring boot·交互
yaoxin52112321 分钟前
295. Java Stream API - 选择适用于并行计算的 BinaryOperator
java·开发语言
We....21 分钟前
SpringBoot 微服务拦截器与负载均衡实践
java·spring boot·微服务·负载均衡
冬至喵喵23 分钟前
RoaringBitmap与传统Bitmap
java·开发语言