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

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

相关推荐
小张快跑。13 小时前
Maven指定版本下载以及相关配置
java·maven
zhishidi13 小时前
Spring @Scheduled注解调度机制详解
java·python·spring
⑩-13 小时前
Blocked与Wati的区别
java·开发语言
AAA简单玩转程序设计13 小时前
救命!Java这3个小技巧,写起来爽到飞起✨
java
IManiy14 小时前
Java表达式引擎技术选型分析(SpEL、QLExpress)
java·开发语言
历程里程碑14 小时前
C++ 17异常处理:高效捕获与精准修复
java·c语言·开发语言·jvm·c++
雨雨雨雨雨别下啦14 小时前
ssm复习总结
java·开发语言
速易达网络14 小时前
基于Java Servlet的用户登录系统设计与实现
java·前端·mvc
散一世繁华,颠半世琉璃14 小时前
从 0 到 1 优化 Java 系统:方法论 + 工具 + 案例全解析
java·性能优化·操作系统
JasmineWr14 小时前
Java SPI和OSGi
java·开发语言