Java接口名称冲突问题的讲解
对于方法重载的区分,主要通过下面三种方式:
1. 参数个数
2. 参数类型
3. 参数顺序(较少使用,维护困难)
至于方法的其他部分,如方法返回值类型、修饰符等,与方法重载则没有任何关系。
Java编程时,假设存在两个接口,但接口中存在相同名称的方法,但是其仅返回值不同。如下:
interface interfac1{ void method(); } interface interface2 { int method(); } interface interface3 extends interfac1,interface2{ }
这段程序看上去是合理的,但是程序实则是错误的。这就涉及到方法的重载问题,这里仅用返回值作为区分是无法进行方法重载的,所以这两个接口中的method()方法,会被当做相同的方法。但是其返回值不同,又造成了矛盾。所以,程序会报错The return types are incompatible for the inherited methods interfac1.f(), interface2.f()
。
所以在Java中,当方法名称相同,仅仅根据方法返回值来区分重载方法是行不通的。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
JAVA设计模式之解释器模式详解
在阎宏博士的<JAVA与模式>一书中开头是这样描述解释器(Interpreter)模式的: 解释器模式是类的行为模式.给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器.客户端可以使用这个解释器来解释这个语言中的句子. 解释器模式的结构 下面就以一个示意性的系统为例,讨论解释器模式的结构.系统的结构图如下所示: 模式所涉及的角色如下所示: (1)抽象表达式(Expression)角色:声明一个所有的具体表达式角色都需要实现的抽象接口.这个接口主要是一个interpre
-
Java解释器的运行过程介绍
首先介绍一下Java解释器的概念,Java解释器:解释器是Java虚拟机非常重要的一部分,它的工作就是把字节码转化为机器码并在特定的平台进行运行.简单一点,java的解释器只是一个基于虚拟机JVM平台的程序 ,即jdk或jre目录下bin目录中的java.exe文件. Java解释器相当于运行Java字节码的"CPU",但该"CPU"不是通过硬件实现的,而是用软件实现的. 步骤1:可以通过操作系统设置,也可不用设置,一般编译环境会为你设置,其中CLASSPATH包含
-
Java基于解释器模式实现定义一种简单的语言功能示例
本文实例讲述了Java基于解释器模式实现定义一种简单的语言功能.分享给大家供大家参考,具体如下: 一 模式定义 解释器模式:就是给定一个语言的文法表示,并且定义一个解释器,用来解释语言中的句子.解释器模式描述了怎样在有了一个简单的文法后,使用模式设计解释这些语句. 二 模式举例 1 模式分析 我们自己设计一种语言来说明这一模式 (1)该语言区分大小写 (2)该语言以PROGRAM开头,END结尾 (3)PRINTLN表示打印一行并换行 (4)使用FOR-FROM-TO-END表示循环 示例语言内
-
Java设计模式之解释器模式_动力节点Java学院整理
定义:给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子. 类型:行为类模式 类图: 解释器模式是一个比较少用的模式,本人之前也没有用过这个模式.下面我们就来一起看一下解释器模式. 解释器模式的结构 抽象解释器:声明一个所有具体表达式都要实现的抽象接口(或者抽象类),接口中主要是一个interpret()方法,称为解释操作.具体解释任务由它的各个实现类来完成,具体的解释器分别由终结符解释器TerminalExpression和非终结符解释器Nonterm
-
Java为什么基本数据类型不需要进行创建对象?
Java是一门面向对象的语言,即一切皆是对象!那么为何数据类型中还分为:基本类型和对象? Java中有8种基本数据类型boolean.byte.short.char.int.flaot.long.double,基本数据类型作为Java语言的一部分,但基本数据类型不是对象,基本数据类型放在堆栈中,对象放在堆中.堆的读写速度远不及栈,如果使用基本数据类型相当于在栈上进行操作,对变量的创建和销毁速度非常快.相反,如果用类进行定义变量,需要在堆中进行操作,创建和销毁速度都比较慢. 出于性能方面的考量,为
-
解析Java的设计模式编程之解释器模式的运用
定义:给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子. 类型:行为类模式 类图: 解释器模式是一个比较少用的模式,本人之前也没有用过这个模式.下面我们就来一起看一下解释器模式. 解释器模式的结构 抽象解释器:声明一个所有具体表达式都要实现的抽象接口(或者抽象类),接口中主要是一个interpret()方法,称为解释操作.具体解释任务由它的各个实现类来完成,具体的解释器分别由终结符解释器TerminalExpression和非终结符解释器Nonter
-
Java设计模式编程之解释器模式的简单讲解
0.解释器(Interpreter)模式定义 : 给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子. 属于行为型模式. 解释器模式在实际的系统开发中使用的非常少,因为它会引起效率.性能以及维护等问题. 解释器模式的通用类图如图所示. 1.解释器模式的优点 解释器是一个简单语法分析工具,它最显著的优点就是扩展性,修改语法规则只要修改相应的非终结符表达式就可以了,若扩展语法,则只要增加非终结符类就可以了. 2.解释器模式的缺点 解释器模式会引起类膨胀:每个语
-
如何理解Java中基类子对象的构建过程从"基类向外"进行扩散的?
<Java编程思想>复用类一章,提出基类的子对象的构建过程是从基类"向外"进行扩散的. 下面通过实例进行讲解,首先看下面的代码: import static net.mindview.util.Print.*; //<java编程思想>提供的类库 /** * @author Administrator * */ public class Cat extends Animal { public Cat() { // TODO Auto-generated cons
-
23种设计模式(15)java解释器模式
23种设计模式第十五篇:java解释器模式 定义:给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子. 类型:行为类模式 类图: 解释器模式是一个比较少用的模式,本人之前也没有用过这个模式.下面我们就来一起看一下解释器模式. 解释器模式的结构 抽象解释器:声明一个所有具体表达式都要实现的抽象接口(或者抽象类),接口中主要是一个interpret()方法,称为解释操作.具体解释任务由它的各个实现类来完成,具体的解释器分别由终结符解释器TerminalExpr
-
Java关于含有继承类的成员初始化过程讲解
参考资料<Java 编程思想>,关于含有基类的导出类,其成员的初始化过程是一个容易让人困惑的地方,下面通过具体的实例进行讲解,代码取自<Java 编程思想>,代码如下: import static net.mindview.util.Print.*; /** * All rights Reserved, Designed By www.tydic.com * * @project: MyExerciseProject * @Title: Beetle.java * @Package
随机推荐
- django model去掉unique_together报错的解决方案
- Linux Shell的一些使用小技巧收集
- 11个PHP 分页脚本推荐
- 非常棒的10款jQuery 幻灯片插件
- jQuery select的操作实现代码
- URL的参数中有加号传值变为空格的问题(URL特殊字符)
- 基于Android实现转盘按钮代码
- java验证电话号码的方法
- 百度分词算法详解第1/2页
- C#读取计算机CPU及HDD信息的方法
- 如何使用mysql完成excel中的数据生成
- 关于"引用"的几点说明介绍
- 91files免费网络硬盘存储空间_单个文件最大支持100M
- Python将多个excel表格合并为一个表格
- Python实现文件信息进行合并实例代码
- TensorFlow高效读取数据的方法示例
- springMVC返回复杂的json格式数据方法
- 如何利用Bash脚本监控Linux的内存使用情况
- vue 实现滚动到底部翻页效果(pc端)
- 浅谈为什么要使用mybatis的@param