本文实例分析了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数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

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

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

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

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

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

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

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

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

  4. 接口默认方法是什么鬼 ​

    接口之所以成为接口,就在于它没有实现,只是声明.但后来一切都变了,Java 里出现了默认方法,C# 也出现了默认方法.接口已经不像传统意义上的接口,其概念开始向抽象类靠近,一个纯抽象的东西,突然出现了 ...

  5. Java8 - 接口默认方法

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

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

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

  7. JDK8新特性之接口默认方法与静态方法

    接口默认方法与静态方法 有这样一些场景,如果一个接口要添加一个方法,那所有的接口实现类都要去实现,而某些实现类根本就不需要实现这个方法也要写一个空实现,所以接口默认方法就是为了解决这个问题. 接口静态 ...

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

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

  9. Java 8中的默认方法(Defender方法)简介

    我们都知道Java中的接口仅包含方法声明,而没有实现,并且任何实现该接口的非抽象类都必须提供实现. 让我们看一个例子: public interface SimpleInterface {public ...

最新文章

  1. 微信小程序下拉刷新真机无法弹回
  2. php 类中的各种拦截器
  3. python framework jdon_一天学会Python Web框架(十二)产品管理
  4. 每个人都应该知道的15个大数据术语
  5. MySQL常用函数 二
  6. IDEA单机,双人五子棋
  7. 第15.9节 PyQt学习入门:使用Qt Designer进行GUI设计的步骤
  8. OAUS自动升级系统
  9. python爬虫(爬取王者荣耀英雄图片)
  10. 时间单位:s cs ms us ns ps fs as zs js ys 普朗克
  11. 领域驱动设计详解:是什么、为什么、怎么做?
  12. Python 快速入门学习总结
  13. 我们诚心诚意的给射手座挑选了两款礼物,希望还来得及丨钛空智慧星球
  14. 报错: TypeError: Cannot read property ‘forceUpdate‘ of undefined
  15. python小游戏代码大全打枪-python实现微信小游戏打飞机代码
  16. 机房收费系统 概要设计
  17. 我辞职了!“没有Python编程经验的我,连简历都不敢投”
  18. php-cs-fixer sublime,PHP-CS-Fixer 格式化php的代码
  19. JVM 双亲委派模型
  20. 银行贷款预测模型项目(Loan Prediction)(下)

热门文章

  1. 百度云盘照片导入华为相册里_怎么把云相册的照片导到手机相册里?
  2. Altium designer AD原理图导入word文档、pdf,生成矢量图的方法;
  3. 锂电池充电过程的四个阶段
  4. 八、在创业公司工作的心理历程
  5. 破解有道翻译js加密,纯小白练手
  6. Alibaba Cloud Toolkit —— 项目一键部署工具
  7. 【论文阅读】PatchmatchNet
  8. 前端“Wed, 22 Sep 2021 15:48:33 GMT“时间转换成“2021-09-22 15:48:33
  9. Oracle 如何删除控制文件中rman备份到磁带的备份集信息(RMAN-06091)
  10. 零基础学习之万物皆可GAN学习路线