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

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

相关推荐
周杰伦_Jay几秒前
【Java集合与线程池深度解析】底层原理+实战选型+避坑指南(附代码)
java·开发语言·python
老王头的笔记4 分钟前
Spring支持的消费器模式,支持在当前事务提交、或回滚的前、后执行业务操作
java·windows·spring
代码or搬砖9 分钟前
Java中操作Redis
java·开发语言·redis
Li_76953222 分钟前
Spring Cloud — SkyWalking(六)
java·后端·spring·spring cloud·skywalking
2201_7578308731 分钟前
SpringBoot
java·spring boot·后端
FAFU_kyp40 分钟前
Java基础与核心知识面试题逐字稿模板
java
程序员西西44 分钟前
深入剖析 Java 中的 ZGC 机制:原理、优势与实践
java·后端·算法
月明长歌1 小时前
【码道初阶】Leetcode.189 轮转数组:不熟悉ArrayList时踩得坑,被Arraylist初始化骗了?
java·算法·leetcode·职场和发展
BBB努力学习程序设计1 小时前
Java设计模式实战指南:创建型模式深度解析
java
BBB努力学习程序设计1 小时前
Java内存管理与JVM调优完全指南
java