【发布时间】:2015-01-23 12:04:49
【问题描述】:
我只是为了一些研究目的而学习 Java。 我对Java中的接口机制有疑问。 我不知道将接口理解为某种特殊的抽象类是否正确;但我很困惑编译时使用的是哪种方法“pr(int _i)”:
public interface A {
int flagA=0;
void pr(int _i);
}
另外一个接口B是这样的:
public interface B extends A{
int flagB=0;
double pr(int _i);
}
然后我实现了一个使用接口 A 和 B 的类:
public class inter1 implements A,B {
void pr(int _i){...};
double pr(int _i){...};
}
无法正确编译。当我使用接口 B 时,这里不会对接口 A 形成覆盖。但是返回类型是否足以区分两种方法?
我已经查阅了 Bruce Eckel 的 Thinking in Java,但没有找到任何有用的东西。
感谢您的宝贵时间!
【问题讨论】:
-
一条评论:
_i不是典型的 java 命名约定 -
===Update 2015-01-27=== 我找到了一种方法来实现我想要实现的目标:简单来说我在 Class inter1 中设置了一个私有内部类 internalClass1 inter1$internalClass1.class , 分别实现 B:
codepublic class inter1 implements A { //重写接口 A 中的方法 pr void pr(int _i){...}; class internalClass1 implements B{ //重写接口 B 中的方法 pr double pr(int _i){...}; } }code它适用于我的目的,希望它也能帮助你。
标签: java interface return-type overriding