JAVA接口和抽象类的区别

Java接口是抽象数据类型,定义抽象方法和常量,用于多类共享行为。抽象类不能实例化,包含抽象方法,强制子类实现。两者都不能被实例化,支持多态,定义规范,约束子类行为,但接口支持多实现,抽象类只能单继承。
摘要由CSDN通过智能技术生成

接口

  • Java 接口是一种抽象的数据类型,它定义了一组抽象方法和常量,但没有实现任何方法的具体代码。
  • 接口可以被类实现,这样实现类就必须实现接口中定义的所有抽象方法。
  • 接口可以被其他接口扩展,这意味着它可以继承所有父接口的常量和抽象方法。
  • 接口通常用于定义多个类需要共享的行为或属性,以及为多态编程提供一种方式。
  • Java 中的许多标准库类都实现了接口,例如 Comparable、Runnable 和 Serializable 接口。
  • 接口中的方法一定要被实现,可以是实现该接口的抽象类,也可以是继承了【实现该接口的抽象类】的子类,也可以抽象类与子类都实现,此时子类属性重写抽象类的方法
  • 接口的注入是按照接口名称注入的,不看接口的路径,如果名称相同则无法注入

抽象类

  • Java 抽象类是一种不能被实例化的类,它只能被用来继承。
  • 抽象类通常包含一些抽象方法,这些方法只有声明,没有具体的实现,而具体的实现由继承抽象类的子类来完成。这样的设计可以强制子类必须实现这些方法,以实现代码的重用和扩展性。
  • 抽象类可以包含非抽象方法和成员变量,但不能被实例化,只能被用来作为其他类的父类。
  • 和普通类一样,抽象类也可以被继承。如果一个类继承了一个抽象类,就必须实现抽象类中所有的抽象方法,否则这个类也必须声明为抽象类。
  • 可以在抽象类中定义私有方法供抽象类用
  • Java 标准库中的许多类都是抽象类,例如 InputStream、OutputStream、Servlet 等。
  • 抽象类是实现面向对象编程中重要的概念之一,提供了一种灵活的、可扩展的抽象设计方式。

区别

  • 抽象类可以有构造方法,而接口不能。
  • 抽象类可以有非抽象方法,而接口只能有抽象方法。
  • 抽象类只能被单继承,而接口可以被多实现。
  • 子类继承抽象类时,必须实现所有的抽象方法,而接口只需要实现自己需要的方法。
  • 接口可以被实现和继承,而抽象类只能被继承
  • 抽象类更多的是为了代码复用,而接口更侧重于解耦

联系

  • 都不能被实例化。
  • 都可以被用来实现多态。
  • 都可以被用来定义一组规范。
  • 都可以被用来约束子类的行为。
  • 都可以被用来实现类的解耦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值