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

一 点睛

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

二 实战

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(); //调用抽象方法

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

}

}

2 运行

3 说明

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

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

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

java 代码 二义性是什么_Java接口默认方法带来的问题分析【二义性问题】相关推荐

  1. java 二义性_Java接口默认方法带来的问题分析【二义性问题】

    本文实例分析了Java接口默认方法带来的问题.分享给大家供大家参考,具体如下: 一 点睛 Java 8中,如果一个类实现两个或多个接口,即"变相"的多继承,但是若其中两个接口都包含 ...

  2. java8新特性lambda表达式、函数式编程、方法引用和接口默认方法以及内部类访问外部变量

    一提到java是一种什么语言? 大多数人肯定异口同声的说是一门面向对象的语言,这种观点从我们开始学java就已经根深蒂固了,但是学到java8新特性函数式编程的时候,我才知道java并不是纯面向对象的 ...

  3. java默认代码地址_Java 8默认方法可能会破坏您的(用户)代码

    java默认代码地址 乍一看, 默认方法为Java虚拟机的指令集带来了一个很棒的新功能. 最后,库开发人员能够开发已建立的API,而不会对其用户代码造成不兼容性. 使用默认方法,当将新方法引入该接口时 ...

  4. Java 8 - Interface Default Method接口默认方法

    Java 8 相比于Java 7 推出了几大特色(features)(接口默认方法)default methods in interface, (接口静态方法)static method in int ...

  5. java实体类实现抽象类_java接口、抽象类、实体类关系介绍

    接口:接口是一个引用类型,与类相似,不过在接口中只能包含常量,方法名和嵌套类型.没有构造器,所以不能被实例化只能被类所实现或者被另外的接口所继承.在接口中声明的方法没有方法体. 抽象类:将类层次中共有 ...

  6. java接口的默认方法,实现类调用接口默认方法

    概述 Java8带来了一些全新的特性,包括lambda表达式.函数接口.方法引用.流.可选方法.接口中的静态方法和默认方法. 在本文中,我们将深入讨论为什么java8接口新增了默认方法,如何使用默认方 ...

  7. Java8 - 接口默认方法

    2019独角兽企业重金招聘Python工程师标准>>> Java8 - 接口默认方法 什么是默认方法,为什么要有默认方法 简单说,就是接口可以有实现方法,而且不需要实现类去实现其方法 ...

  8. java8新特性_乐字节-Java8新特性-接口默认方法

    总概 JAVA8 已经发布很久,而且毫无疑问,java8是自java5(2004年发布)之后的最重要的版本.其中包括语言.编译器.库.工具和JVM等诸多方面的新特性. Java8 新特性列表如下: 接 ...

  9. jdk8 接口默认方法_JDK 8中方便的新地图默认方法

    jdk8 接口默认方法 Map接口在JDK 8中提供了一些方便的新方法 . 因为我在本文中介绍的Map方法是作为默认方法实现的,所以Map接口的所有现有实现都享有在默认方法中定义的默认行为,而无需任何 ...

最新文章

  1. 表转换存储引擎的方法总结
  2. 模拟上帝之手的对抗博弈——GAN背后的数学原理
  3. erlang精要(10)-erl(2)
  4. 信息收集——指纹识别
  5. CLion 输出遇到乱码解决办法,GBK和utf-8的转换
  6. 能让你成为更优秀程序员的10个C语言资源
  7. pipedreader_Java PipedReader connect()方法与示例
  8. VB编程的RS485通讯操作界面源码 本程序适应各类带RS485通讯的设备,参数可以自由修改,主要是针对各类变频器RS485通讯(RTU)格式!
  9. Linux + ChromiumOS操作系统资源持续更新...(转载)
  10. python和java就业对比_Python,Java和JavaScript哪个更容易就业?
  11. 无意听到的歌, 心理很难受..
  12. 安卓手机通过termux免root安装kali
  13. 正则改造VS Code里React类组件的自定义snippet
  14. 【Python网络编程和并发-多线程共享数据混乱引出同步锁】
  15. 【SemiDrive源码分析】【Yocto源码分析】02 - yocto/meta-openembedded目录源码分析
  16. Java(回文数--一种比较简单的写法)
  17. java中日志的级别说明
  18. IDEA设置背景图像
  19. PFA树脂的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  20. 有源带通滤波器电路频率案例

热门文章

  1. dnf最新地图编号2020_DNF100级即将迎来新城镇 地图小贴士
  2. 走进JavaWeb技术世界3:JDBC的进化与连接池技术
  3. 链乔教育在线|智能合约学习——以太坊智能合约学习笔记(四)
  4. 华为欧拉系统(openeuler)
  5. 现代程序员 VS. 古典程序员,你属于哪一类?
  6. ICLR2020论文阅读笔记reformer: THE EFFICIENT TRANSFORMER
  7. 抖音运营:抖音直播运营入门
  8. HTML5 postMessage 和 onmessage API 详细应用
  9. 【继上篇】云计算架构概念和技术基础
  10. 英文参考文献按照首字母排序使用matlab实现