NO.16 沙场秋点兵:类vs抽象类vs接口 | Java敲黑板系列

本文对比了Java中的接口、抽象类和类的区别与联系。详细介绍了它们各自的定义、使用时机及特性,帮助开发者理解如何根据需求选择合适的类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开场白

老铁 :接口、抽象类、类——三位英雄执剑走天涯,行侠仗义,被誉为“Java帝国三剑客”。三位英雄从来都不会争强好胜,而是相互协助,发挥各自优势,共同打造Java帝国的强安全性与高健壮性。

今天我们对三位英雄进行总结对比,一方面让老铁们对三位有一个全面的认识,另外一方面也供老铁在进行技术选型时做参考。今天全是干货,敲黑板时老铁们需格外留意。

特性比较

敲黑板

  1. 关键字:接口用interface;抽象类用abstract class;类用class。
  2. 定义:接口是一种契约,不带具体的实现;抽象类也是一种契约,带有部分实现;类是一种具体的实现,经常是某个接口或抽象类的实现。
  3. 使用时机:当你想要支持多重继承,或是为了定义一种类型请使用接口;当你打算提供带有部分实现的类请使用抽象类;当你打算提供完整的具体实现请使用类。
  4. 定义的内容:接口中只能包括public函数以及public static final常量;抽象类与类均无任何限制。
  5. 函数实现:接口不允许实现;抽象类允许部分实现;类要求完全实现。

区别

敲黑板

  1. 支持多重继承:接口支持;抽象类不支持;类不支持;
  2. 支持抽象函数:接口语义上支持;抽象类支持;类不支持;
  3. 允许函数实现:接口不允许;抽象类支持;类允许;
  4. 允许实例化:接口不允许;抽象类不允许;类允许;
  5. 允许部分函数实现:接口不允许;抽象类允许;类不允许。

老铁们知道以上内容后,需要把以上内容融合贯通并运用到实际的编程实践中,选择恰当的类型来表达我们所期待的接口与意图。此外,也基本就可以应付所有的关于上述三种联系与区别方面的技术面试了。

转载自公众号:代码荣耀
图1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值