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

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

相关推荐
程序员小白条14 小时前
0经验如何找实习?
java·开发语言·数据结构·数据库·链表
小马爱打代码14 小时前
Spring AI:搭建自定义 MCP Server:获取 QQ 信息
java·人工智能·spring
郭涤生14 小时前
QT 架构笔记
java·数据库·系统架构
daidaidaiyu14 小时前
基于LangGraph开发复杂智能体学习一则
java·ai
小小8程序员15 小时前
STL 库(C++ Standard Template Library)全面介绍
java·开发语言·c++
a努力。15 小时前
Redis Java 开发系列#2 数据结构
java·数据结构·redis
a努力。16 小时前
腾讯Java面试被问:String、StringBuffer、StringBuilder区别
java·开发语言·后端·面试·职场和发展·架构
Vic1010117 小时前
解决 Spring Security 在异步线程中用户信息丢失的问题
java·前端·spring
QD_IT伟17 小时前
SpringBoot项目整合Tlog 数据链路的规范加强
java·spring boot·后端
源码获取_wx:Fegn089517 小时前
基于springboot + vue二手交易管理系统
java·vue.js·spring boot·后端·spring·课程设计