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

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

相关推荐
人道领域3 分钟前
【零基础学java】(补充可变参数和Collections)
java·intellij-idea
夏幻灵7 分钟前
【Java进阶】面向对象编程第一站:深入理解类、对象与封装前言
java·开发语言
nsjqj8 分钟前
JavaEE初阶:多线程(1)
java·开发语言·jvm
0xwang8 分钟前
maven scope引起的程序崩溃
java·maven
编程饭碗27 分钟前
【Java 类的完整组成】
java·开发语言·python
Macbethad1 小时前
技术方案:基于 TwinCAT 3 的半导体设备气路控制系统设计
java·运维·数据库
C雨后彩虹1 小时前
猜密码问题
java·数据结构·算法·华为·面试
fanruitian1 小时前
visualstudio code cline使用mcp amap
java·前端·visual studio
骇客野人2 小时前
基于springboot的Java快速定时任务
java·windows·spring boot
资生算法程序员_畅想家_剑魔2 小时前
Java常见技术分享-28-事务安全-事务日志-事务日志流程
java·开发语言