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

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 大视界 -- 实战|Elasticsearch+Java 电商搜索系统:分词优化与千万级 QPS 性能调优(439)
java·spring boot·elasticsearch·性能优化·搜索系统·容器化部署·母婴电商
Wang15303 分钟前
Java的面向对象
java
!chen4 分钟前
Spring Boot Pf4j模块化开发
java·spring boot·spring
趁月色小酌***8 分钟前
吃透Java核心:从基础语法到并发编程的实战总结
java·开发语言·python
计算机毕设指导68 分钟前
基于Django的本地健康宝微信小程序系统【源码文末联系】
java·后端·python·mysql·微信小程序·小程序·django
Ccuno11 分钟前
Java中常用的数据结构实现类概念
java·开发语言·深度学习
weixin_4407305016 分钟前
Java基础学习day02
java·python·学习
曲莫终20 分钟前
增强版JSON对比工具类
java·后端·测试工具·json
BD_Marathon21 分钟前
Spring——核心概念
java·后端·spring
幽络源小助理27 分钟前
SpringBoot+Vue数字科技风险报告管理系统源码 | Java项目免费下载 – 幽络源
java·vue.js·spring boot