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

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

相关推荐
sg_knight13 小时前
抽象工厂模式(Abstract Factory)
java·python·设计模式·抽象工厂模式·开发
春日见13 小时前
win11 分屏设置
java·开发语言·驱动开发·docker·单例模式·计算机外设
2301_7800290413 小时前
支付宝sdk导入错误
java·开发语言·maven
码界奇点14 小时前
基于Spring Boot和Vue3的无头内容管理系统设计与实现
java·spring boot·后端·vue·毕业设计·源代码管理
九皇叔叔14 小时前
【03】微服务系列 之Nacos 注册中心(服务注册)
java·微服务·nacos·架构·注册中心·服务注册
木辰風14 小时前
PLSQL自定义自动替换(AutoReplace)
java·数据库·sql
heartbeat..14 小时前
Redis 中的锁:核心实现、类型与最佳实践
java·数据库·redis·缓存·并发
15 小时前
java关于内部类
java·开发语言
好好沉淀15 小时前
Java 项目中的 .idea 与 target 文件夹
java·开发语言·intellij-idea
gusijin15 小时前
解决idea启动报错java: OutOfMemoryError: insufficient memory
java·ide·intellij-idea