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

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

相关推荐
小新同学^O^7 小时前
简单学习 --> SpringAOP
java·学习·spring·aop
风味蘑菇干7 小时前
使用接口定义规范,实现类完成具体逻辑。
java·开发语言
Zephyr_07 小时前
java数据结构
java·数据结构
2401_833269307 小时前
Java多线程:从入门到进阶
java·开发语言
NE_STOP7 小时前
Redis--Redis分布式系统的原理与实操
java
Forget_85507 小时前
RHEL——Kubernetes容器编排平台(二)
java·开发语言
庞轩px7 小时前
第五篇:Spring事务管理——@Transactional的底层实现与失效场景
java·spring·事务管理·spring事务·注解transactional
研究点啥好呢7 小时前
凯捷 自动化测试(Java+Selenium)面试题精选:10道高频考题+答案解析
java·开发语言·python·selenium·测试工具·求职招聘
李白你好7 小时前
一个面向 Java 反序列化测试的桌面 GUI 工具
java
xieliyu.8 小时前
Java手搓二叉树:基础遍历与核心操作全解析
java·开发语言·数据结构·学习