关于java8中的接口特性验证

  在java8中,已经有了接口的新定义。

  在工作中,很少看见在接口中写默认方法。主要是今天见到了有程序在写抽象类,就感觉其实这里用新的接口也是可以的。

  所以,针对接口,做一个文档梳理。

一:基本知识说明

1.定义

  接口可以包括数据成员,但是数据成员必须是常量,其值一旦被初始化后,是不允许修改的,这些数据成员通常为全局变量。

       为了避免在接口中添加新方法后要修改所有的实现类,接口中允许定义默认方法(default方法)。

       定义接口需要使用关键字interface

2.java中新特性说明

  可以在接口中写default修饰的默认方法

package com.jun.prove.service;

public interface calculate {
    int result = 7;
    default int add(int a, int b){
        return a+b;
    }
}

  如果调用,则使用其实现的子类对象进行调用

3.可以写static方法

  这种情况就相当于工具类,使用类名直接调用就可以了

二:一些可能会遇到的场景,关于多继承实现

1.重写

  如果实现类重写了接口中的默认方法,调用时,仍然调用的是重写以后的方法

2.类多实现接口

  如果实现类实现了多个接口,而这多个接口中定义了同名同参数的默认方法,那么在实现类没有重写此方法的情况下,报错

3.继承与实现混合

  如果子类继承的父类和实现的接口中声明了同名同参数的方法,子类在没有重写此方法的情况下,默认调用的是父类中的同名同参数的方法。

  

4.多接口存在同名方法

  当接口的父接口中也有同样的默认方法时,就近原则调用子接口的方法。

原文地址:https://www.cnblogs.com/juncaoit/p/12357117.html