接口和抽象有什么区别?

接口和抽象有什么区别?

接口和抽象是 Java 面向对象设计的两个基础机制。

接口是对行为的抽象,它是抽象方法的集合,利用接口可以达到API 定义和实现分离的目的

  • 接口不能实例化,
  • 接口不能包含任何非常量成员,任何 field 隐含 public field final的意义
  • 非静态方式实现,要么是抽象方法,要么是静态方法。

抽象类不能实例化,用 abstract 关键字修饰 class, 其主要目的是代码重用

  • 抽象类和普通 Java 类在形式上没有太大区别。 可以有一个或者多个抽象方法,- 抽象类大多用于抽取 Java 类共用方法实现或者共同成员变量。然后通过继承的方式到达代码复用的目的。

接口和抽象区别

  • 接口 Java 类实现 interface 使用 implements 关键词
  • 继承 抽象类是使用 extends 关键词
  1. 支持多重继承:接口支持;抽象类不支持;类不支持;
  2. 支持抽象函数:接口语义上支持;抽象类支持;类不支持;
  3. 允许函数实现:接口不允许;抽象类支持;类允许;
  4. 允许实例化:接口不允许;抽象类不允许;类允许;
  5. 允许部分函数实现:接口不允许;抽象类允许;类不允许。
  6. 定义的内容:接口中只能包括public函数以及public static final常量;抽象类与类均无任何限制。
  7. 使用时机:当想要支持多重继承,或是为了定义一种类型请使用接口;

当打算提供带有部分实现的“模板”类,而将一些功能需要延迟实现请使用抽象类;当你打算提供完整的具体实现请使用类。

public class ArrayLis<E> extends AbsractLis<E&
wangxiaoming CSDN认证博客专家 架构 Spring Boot Redis
博客是很好的总结和记录工具,如果有问题,来不及回复,关注微信公众号:程序员开发者社区,获取我的联系方式,向我提问,也可以给我发送邮件,联系 1275801617@qq.com
©️2020 CSDN 皮肤主题: Age of Ai 设计师: meimeiellie 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值