Java 接口 和 抽象类

在JDK 1.8及以后的版本中,Java的抽象类和接口变得更加灵活和有趣,就像两位穿着时尚新装的“代码舞者”,在编程舞台上翩翩起舞。让我们来轻松幽默地解析一下他们的新装扮,以及他们的异同点和设计思路。

抽象类(Abstract Class)


新装扮:在JDK 1.8之后,抽象类依然保持着它的“半实现”特性,像是一位拥有部分才艺的“舞蹈导师”。它不仅自己可以跳一些舞步,还能教授其他类如何完成剩下的舞蹈动作。

设计思路:抽象类的设计思路在于提供一种模板或框架,其中可以包含已经实现好的通用方法,以及留给子类去实现的抽象方法。这样,子类就可以根据自己的需求来扩展这个模板,实现更具体的功能。

接口(Interface)


新装扮:在JDK 1.8之后,接口变得异常“时髦”,它不仅可以定义方法签名,还可以定义默认方法和静态方法,就像是一位多才多艺的“全能舞者”。现在,接口不再只是一个纯粹的“合同”,它还可以直接参与舞蹈的某些环节。

设计思路:接口的设计思路在于提供一种完全抽象的规范或契约,让不同的类可以遵循这个规范来实现相同的功能。在JDK 1.8之前,接口中的方法都是抽象的,必须由实现类提供具体实现。而在JDK 1.8之后,接口可以定义默认方法和静态方法,这为接口提供了更多的灵活性和扩展性。

异同点


相同点:

不能独舞:抽象类和接口都不能单独“跳舞”,它们都需要有其他的类来继承或实现它们。
引导舞步:无论是抽象类还是接口,它们都提供了一种引导或约束子类/实现类的方式,确保它们按照某种规范或模板来“跳舞”。
不同点:

才艺展示:抽象类可以展示自己的部分“才艺”(具体方法),而接口则更注重展示“舞姿”或“节奏”(方法签名),具体的“舞蹈动作”需要实现类来完成。
合作伙伴:抽象类通常有一个“家族”或“团队”的概念,一个类只能继承自一个抽象类(或普通类)。而接口则更加开放和灵活,一个类可以实现多个接口,与多个“合作伙伴”共舞。
即兴发挥:在JDK 1.8之后,接口可以定义默认方法和静态方法,这就像是接口在“即兴发挥”,展示自己的“舞蹈天赋”。而抽象类则相对保守一些,主要依赖子类来扩展功能。


总结


在JDK 1.8及以后的版本中,抽象类和接口都变得更加灵活和强大。抽象类像一位拥有部分才艺的“舞蹈导师”,为子类提供模板和框架;而接口则像一位多才多艺的“全能舞者”,为不同的类提供规范和契约。在设计时,我们需要根据具体的需求和场景来选择使用抽象类还是接口,或者将它们结合起来使用,以达到最佳的效果。

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值