接口的一些新变化和运用

在java的新版本中,接口的方法使用发生了一些变化,通常来说接口中只能定义方法,这些方法是没有实现的,但是在新版本的接口中通过修饰符defaultstatic修饰的方法可以拥有方法体

接口中使用default或static修饰的方法都必须有方法体,也就是必须在接口中提供实现。

使用static修饰的方法可以通过接口名.方法名来调用,本质上就是一般的静态方法。

使用default修饰的方法,当一个类实现这个接口之后可以通过对象.方法名调用,类似于调用继承了的父类的非私有方法。

接口与抽象类的异同:

相同点:

  1. 都可以用来声明指向他的子类或实现类
  2. 都不可以实例化
  3. 都可以用来扩展类的功能
  4. 子类或实现类都实现实现它们之中没有实现的方法即没有方法体的方法。

不同点:

  1. 接口成员变量是public, static ,final的,抽象类跟普通类一致
  2. 接口的方法的访问修饰符只能是public的,其他修饰符可以为static,default,abstract(默认为abstract),抽象类的方法访问修饰符与普通方法一致。抽象类可以没有抽象方法,有抽象方法的一定是抽象类
  3. 接口不能定义构造方法,抽象类可以有构造方法,但并不是用来实例化的,是给子类调用用来实例化的
  4. 接口不能有初始化块,抽象类可以有初始化块
  5. 接口可以继承(extends)多个接口,抽象类跟普通类一样只能继承一个类

目前用接口与抽象类开发的一些好处有:

面向接口编程可以帮我们理清思路,把程序大概的运行方式搭建出来,之后再把功能一个个完成。运用接口与抽象类时,如果要对接口或抽象类的方法进行扩展,那么继承了这些抽象类或实现了这些接口的类就会报出错误,强制子类实现,让人容易修改不易遗漏。

方法的参数可以使用接口与抽象类而无需指定具体的实现类,只要实现了相应的接口或者继承了相应的类就可以使用这个方法。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值