接口1:
接口2:
接口二的抽象方法的形参为接口1.
类1:
类1中有一个无参无返回值的成员方法.
类2:
类2中也有一个无参无返回值的成员方法.
测试类以及运行效果1:
show()方法里面,ni调用了fun()方法,fun()的参数为Demo对象的方法引用.在主方法中调用show()方法时,方法中的参数传入的是Demo02的对象引用了该对象的成员方法,(实际show()方法中的参数是接口1的方法引用).
另外一种写法及运行效果:
将show()方法里面的ni调用的fun()中的参数修改后的运行结果为:
将调用show()方法时,该参数的参数修改为和fun()方法中的参数一样再次运行的效果为:
如此传参的话,只相当于重写了接口1的抽象方法,但在测试类的方法里面却同时调用了两个接口的默认方法,而接口2的抽象方法却没有被重写.我的理解不知道对不对,欢迎大神批评指正!!!
更正:
以上观点错误.正确的解释为:show()的参数列表中是重写了两个接口的所有抽象方法,只不过在重写NewInterface的fun()方法中仅仅是将MyInterface的抽象方法重写之后调用了一下,而fun()方法没有添加任何额外的功能.