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

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

相关推荐
小白勇闯网安圈几秒前
Java的集合
java·开发语言
大学生资源网3 分钟前
基于springboot的乡村信息化管理系统的研究与实现(源码+文档)
java·spring boot·后端
鹿角片ljp5 分钟前
力扣 83: 删除排序链表中的重复元素(Java实现)
java·leetcode·链表
Mr Tang17 分钟前
Docker日志查看和应用日志查看命令大全
java·开发语言
invicinble19 分钟前
java处理数据合集
java·开发语言
Json_37 分钟前
springboot框架对接物联网,配置TCP协议依赖,与设备通信,让TCP变的如此简单
java·后端·tcp/ip
C+++Python44 分钟前
Java 锁机制
java·开发语言
czlczl200209251 小时前
Spring Security 6 :配置生产级 SecurityFilterChain
java·spring
Java小白,一起学习1 小时前
AndroidStudio安装教程
java·android-studio
学编程就要猛1 小时前
算法:3.快乐数
java·算法