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

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

相关推荐
岁岁种桃花儿26 分钟前
SpringCloud从入门到上天:Nacos做微服务注册中心(二)
java·spring cloud·微服务
Word码30 分钟前
[C++语法] 继承 (用法详解)
java·jvm·c++
TT哇36 分钟前
【实习 】银行经理端两个核心功能的开发与修复(银行经理绑定逻辑修复和线下领取扫码功能开发)
java·vue.js
逝水如流年轻往返染尘38 分钟前
Java中的数组
java
java1234_小锋1 小时前
Java高频面试题:BIO、NIO、AIO有什么区别?
java·面试·nio
用户8307196840821 小时前
Java IO三大模型(BIO/NIO/AIO)超详细总结
java
sheji34161 小时前
【开题答辩全过程】以 基于SSM的花店销售管理系统为例,包含答辩的问题和答案
java
Mr_sun.1 小时前
Day09——入退管理-入住-2
android·java·开发语言
MAGICIAN...2 小时前
【java-软件设计原则】
java·开发语言
JH30732 小时前
为什么switch不支持long
java