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

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

相关推荐
衍生星球2 分钟前
Maven 3.9.6的下载和配置
java·maven·springboot
缘来是庄9 分钟前
设计模式之代理模式
java·设计模式·代理模式
都叫我大帅哥15 分钟前
向量数据库Milvus:非结构化数据的救星,AI开发者的瑞士军刀
java·python
comeilmforever30 分钟前
IDEA2025 Version Control 窗口 local changes显示
java·ide·intellij-idea
火车叨位去194932 分钟前
映射阿里云OSS(对象存储服务)
java·spring
2301_14725836938 分钟前
7月1日作业
java·前端·算法
Ting-yu42 分钟前
Java中Stream流的使用
java·开发语言·windows
一只猿Hou1 小时前
java分页插件| MyBatis-Plus分页 vs PageHelper分页:全面对比与最佳实践
java·mybatis
程序员弘羽1 小时前
C++ 第四阶段 内存管理 - 第二节:避免内存泄漏的技巧
java·jvm·c++
旷世奇才李先生1 小时前
Tomcat 安装使用教程
java·tomcat