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

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

相关推荐
cheems952711 分钟前
锁策略的介绍
java·开发语言
武子康16 分钟前
Java-199 JMS Queue/Topic 集群下如何避免重复消费:ActiveMQ 虚拟主题与交付语义梳理
java·分布式·消息队列·rabbitmq·activemq·mq·java-activemq
LSL666_22 分钟前
12 MyBatis的连接池
java·服务器·mybatis
Arva .24 分钟前
说说线程的生命周期和状态
java·开发语言
tryxr32 分钟前
HashTable、HashMap、ConcurrentHashMap 之间的区别
java·开发语言·hash
无事好时节37 分钟前
Linux 线程
java·开发语言·rpc
我家领养了个白胖胖41 分钟前
Prompt、格式化输出、持久化ChatMemory
java·后端·ai编程
sszdlbw1 小时前
后端springboot框架入门学习--第二篇
java·spring boot·学习
阿拉斯攀登1 小时前
MyBatis 全面解析 & Spring Boot 集成实战
java·spring boot·mybatis·持久层框架
A尘埃1 小时前
Java业务场景(高并发+高可用+分布式)
java·开发语言·分布式