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

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

相关推荐
派大鑫wink1 分钟前
【Day21】NIO入门:通道、缓冲区与非阻塞IO基础
java·开发语言
ziyue75751 分钟前
idea将配置移动到自定义位置
java·intellij-idea·idea·软件
南汐以墨4 分钟前
UI自动化测试指南(一):浅解概念
java·测试工具
不能只会打代码13 分钟前
力扣--1970. 你能穿过矩阵的最后一天(Java)
java·算法·leetcode·二分查找·力扣·bfs·最后可行时间
少年执笔21 分钟前
android新版TTS无法进行语音播报
android·java
咸鱼2.029 分钟前
【java入门到放弃】数据结构
java·开发语言·数据结构
啊西:29 分钟前
SuperMap iObjects Java地图生成栅格瓦片并保存到mongodb
java·开发语言·mongodb
教练、我想打篮球36 分钟前
125 如何运行时实时切换数据库(实时切换影子库)
java·spring·shadow·datasource
毕设源码-赖学姐37 分钟前
【开题答辩全过程】以 “实惠”药房管理系统为例,包含答辩的问题和答案
java
共享家952739 分钟前
测试常用函数(一)
java·前端·javascript