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

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

相关推荐
武子康1 分钟前
AI研究-133 Java vs Kotlin/Go/Rust/Python/Node:2025 详细对比分析 定位与取舍指南
java·javascript·python·golang·rust·kotlin·node
k***92164 分钟前
Spring Boot(七):Swagger 接口文档
java·spring boot·后端
kesifan6 分钟前
JAVA线程的建立方法
java·开发语言·python
qq_336313939 分钟前
java基础-set类集合进阶
java·算法
菠菠萝宝12 分钟前
【Java手搓OpenManus】-5- 工具系统设计
java·开发语言·人工智能·openai·agent·manus
d***93517 分钟前
Spring Boot 自动配置
java·spring boot·后端
h***673718 分钟前
Spring Boot文件上传
java·spring boot·后端
渡我白衣20 分钟前
哈希的暴力美学——std::unordered_map 的底层风暴、扩容黑盒与哈希冲突终极博弈
java·c语言·c++·人工智能·深度学习·算法·哈希算法
信码由缰20 分钟前
Java记录类入门:简化的以数据为中心的Java编程
java
中工钱袋22 分钟前
Java Stream 流详解
java·windows·python