接口类和内部类(二)

一、抽象类和接口对比

相同点:

  1. 都支持抽象方法: 抽象类和接口都可以包含抽象方法,这些方法没有具体的实现,需要在子类中实现。

  2. 都可以被继承: 子类可以继承抽象类,也可以实现接口。

  3. 都可以包含具体方法: 从 Java 8 开始,接口也可以包含默认方法(default methods),提供默认的实现。

  4. 都不能被实例化: 既不能实例化抽象类,也不能实例化接口。

不同点:

  1. 实现方式:

    • 抽象类使用 abstract 关键字定义,可以包含抽象方法和具体方法。
    • 接口使用 interface 关键字定义,只能包含抽象方法(在 Java 8 之前),或者包含默认方法和静态方法(在 Java 8 及之后)。
  2. 构造器:

    • 抽象类可以有构造器,而接口不能有构造器。
  3. 字段:

    • 抽象类可以包含实例字段,而接口只能包含常量字段(static final)。
  4. 多继承:

    • 一个类只能继承一个抽象类,但可以实现多个接口。这是 Java 编程语言的一个关键区别,是为了避免多继承的复杂性问题。
  5. 用途:

    • 抽象类通常用于具有某种共同特性的类,可以包含一些通用的方法和字段,也可以包含抽象方法,由子类实现。
    • 接口通常用于定义一组相关的操作,可以被多个类实现。接口提供了一种机制,允许类在不同的继承体系中共享共同的功能。

Java 8中关于接口的改进 :

静态方法:使用static关键字修饰。可以通过接口直接调用静态方法,并执行其方法体。
默认方法:默认方法使用default关键字修饰。可以通过实现类对象来调用。我们在已有的接口中提供新方法的同时,还保持了与旧版本代码的兼容性
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值