interface a1
{
void fun();
}
interface a2
{
void fun();
}public class a implements a1 ,a2
{
public void fun(){
System.out.println("qqqq");
}
static void show(a1 aa)
{
aa.fun();
}
static void show1(a2 aa)
{
aa.fun();
} public static void main(String args [])
{
show(new a());
show1(new a()); }
}
编译运行皆正常,问题是请各位大侠告诉我:是不是一个fun实现了a1,a2接口的fun。如果不是它到底实现的是那个?
{
void fun();
}
interface a2
{
void fun();
}public class a implements a1 ,a2
{
public void fun(){
System.out.println("qqqq");
}
static void show(a1 aa)
{
aa.fun();
}
static void show1(a2 aa)
{
aa.fun();
} public static void main(String args [])
{
show(new a());
show1(new a()); }
}
编译运行皆正常,问题是请各位大侠告诉我:是不是一个fun实现了a1,a2接口的fun。如果不是它到底实现的是那个?
首先来说,这种问题比较难碰到.
然后呢,我给出这个问题的解决方法.
用内部类,来实现一个接口,用封装类实现一个接口,这样就可以区分两个接口内的方法.
interface A1
{
void fun();
}
interface A2
{
void fun();
} public class A implements A1 {
public void fun(){
System.out.println("A");
}
class B implements A2 {
public void fun(){
System.out.println("B");
}
}
}
接口这样描述自己:“对于实现我的所有类,看起来都应该象我现在这个样子”。因此,采用了一个特定接口的所有代码都知道对于那个接口可能会调用什么方法。 (think in java)
为什么不同的接口 不能调用相同的方法?两个接口可以长得很像.
的确,这在java里是允许这样做的,但是在编程中会困扰程序员,所以,遇到这样的问题,可以用我上面讲的方法去区分解决