Java接口默认方法带来的问题分析【二义性问题】

网友投稿 472 2023-07-27

Java接口默认方法带来的问题分析【二义性问题】

本文实例分析了java接口默认方法带来的问题。分享给大家供大家参考,具体如下:

一 点睛

Java 8中,如果一个类实现两个或多个接口,即“变相”的多继承,但是若其中两个接口都包含一个名字相同的http://default方法,会出现二义性问题。

二 实战WbaoyAGWp

1 代码

interface faceA //定义接口faceA

{

void someMethod( );

default public void DefaultMethod( )//定义接口中默认方法

{

System.out.println("Default method in the interface A");

}

}

interface faceB //定义接口faceB

{

default public void DefaultMethod( )//定义接口InterfaceB中同名的默认方法

{

System.out.println("Default method in the interface B");

}

}

class DefaultMethodClass implements faceA,faceB //定义子类实现接口InterfaceA, InterfaceB

{ public void someMethod( ) //实现接口InterfaceA的抽象方法

{

System.out.println("Some method in the subclass");

}

}

public class Interfacsamedefaults

{

public static void main(String[] args)

{

DefaultMethodClass def = new DefaultMethodClass( );

def.someMethod(); //调用抽象方法

defWbaoyAGWp.DefaultMethod(); //调用默认方法

}

}

2 运行

3 说明

实例化子类DefaultMethodClass的对象时,编译器不知道应该在两个同名的default方法中选择哪一个,因此产生了二义性。因此,一个类实现多个接口时,若接口中有默认方法,不能出现同名的方法。

Java之所以禁止多继承,就是想避免类似的二义性。但是接口中允许实现默认方法,又回到“二义性”的灾难之门。

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java带default方法接口的应用示例
下一篇:浅谈关于Java正则和转义中\\和\\\\的理解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~