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

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

相关推荐
chenjingming6662 分钟前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
殷紫川7 分钟前
深入拆解 Java volatile:从内存屏障到无锁编程的实战指南
java
eddieHoo15 分钟前
查看 Tomcat 的堆内存参数
java·tomcat
那个失眠的夜15 分钟前
Mybatis延迟加载策略
xml·java·数据库·maven·mybatis
Java成神之路-24 分钟前
SpringMVC 响应实战指南:页面、文本、JSON 返回全流程(Spring系列13)
java·spring·json
殷紫川27 分钟前
深入拆解 synchronized:从偏向锁到重量级锁的升级之旅与优化秘籍
java
Momentary_SixthSense27 分钟前
设计模式之工厂模式
java·开发语言·设计模式
殷紫川28 分钟前
深入拆解 Java 内存模型:从原子性、可见性到有序性,彻底搞懂 happen-before 规则
java·后端
殷紫川30 分钟前
ThreadLocal 深度剖析:底层实现、内存泄漏根因与生产环境避坑指南
java
砍材农夫39 分钟前
spring-ai 第六模型介绍-聊天模型
java·人工智能·spring