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

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

相关推荐
q***017722 分钟前
Spring Boot 热部署
java·spring boot·后端
Seven9723 分钟前
SpringCloud 常见面试题(三)
java
H***997624 分钟前
Java虚拟现实案例
java·开发语言·vr
yifengyiyufjq1 小时前
Docker 镜像制作教程
java·docker·node.js
tuokuac1 小时前
SQL中AND和逗号,的区别
java·数据库·sql
zl9798991 小时前
RabbitMQ-Hello World
java·分布式·rabbitmq
程序员三明治1 小时前
【Spring进阶】Spring IOC实现原理是什么?容器创建和对象创建的时机是什么?
java·后端·spring·ioc·bean生命周期
程序员西西2 小时前
SpringCloudGateway入门实战
java·spring boot·计算机·程序员·编程
c***93773 小时前
SpringBoot实现异步调用的方法
java·spring boot·spring
青衫码上行3 小时前
【Java Web学习 | 第15篇】jQuery(万字长文警告)
java·开发语言·前端·学习·jquery