java8中的接口

java8对接口实现了一定的升级。

1接口的定义

access interface name
{
    ret-type method-name (param-list);
    typa var1=value;

}

这里access 可以是public要么是默认的包访问方式。当声明为public是必须位于同名的文件中。
方法隐含为public。变量隐含为public ,staic,final

接口的实现,继承

在类里面用implements来对接口实现。接口的继承是extends。

默认接口方法(新)

java8开始可以在接口中加默认的实现。只需要在方法前加入default关键字

public interface MyIF
{
    default int fetAdminID()
    {
        return 1;
    }
}

多继承问题

由于现在接口有默认的实现。如果一个类实现的多个接口里面有重名的默认实现那么就会产生多继承问题。

“`java
interface Alpha
{
default void reset()
{
System.out.print(“alpha”);
return;
}
}

interface Beta extends Alpha
{
default void reset()
{
System.out.print(“Beta”);
return;
}
}

class MyClass implements Alpha,Beta
{

}
““

在这段代码中,MyClass中的reset方法是Alpha中的还是Beta中的呢?java有如下规则

在所有情况下,类的实现都是优先于接口的默认实现。如果MyClass中实现了reset()那么久用类里面的实现
如果类没有对冲突的默认方法提供实现那么报错
如果一个接口继承了另一个接口这样产生的冲突,那么继承接口有高优先级。在接口Beta里面可以使用一种方式访问Alpha的接口Alpha.super.reset();[interfacename.super.methodName()]

在接口中使用静态方法

接口里面的方法可以用static修饰。但是要主要的是接口里面的静态方法不能被实现类继承,也不能被子接口继承。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值