一个类继承两个接口,两个接口都有相同名字的方法,类运行这个方法时候会怎样?

解决方案 »

  1.   

    如果两个接口中方法的形参列表也一样的话,在调用的时候就一个方法,这个应该没什么疑问。interface A
    {
    public void fun();
    }
    interface B
    {
    public void fun();
    }
    class TestInterface implements A,B
    {
    public void fun()
    {
    System.out.println("方法被执行!");
    }}public class Ansewer010 {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    TestInterface ti=new TestInterface();
    ti.fun(); }}如果接口中的方法只是方法名称一样,但形参列表不同,那在实现类中此方法构成了重载,调用的是那个就是那个。package com.student.test;interface A
    {
    public void fun();
    }
    interface B
    {
    public void fun(int x);
    }
    class TestInterface implements A,B
    {
    public void fun()
    {
    System.out.println("方法被执行!");
    }
    public void fun(int x)
    {
    System.out.println("方法被执行!"+x);
    }
    }public class Ansewer010 {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    TestInterface ti=new TestInterface();
    ti.fun();
    ti.fun(12); }}
      

  2.   

    接口TestInterface:
    public interface TestInterface {
    public void printStr();
    }接口TestInterface1:
    public interface TestInterface1 {
    public void printStr(String str);
    }实现类TestInterfaceImpl:
    public class TestInterfaceImpl implements TestInterface,TestInterface1{ public void printStr(String str) {
    // TODO Auto-generated method stub

    } public void printStr() {
    // TODO Auto-generated method stub

    }

    }
    前面是两个方法的签名是不同的,现在改成相同的。
    修改interface:public interface TestInterface {
    public void printStr(String srt);
    }
    现在实现类TestInterfaceImpl:
    public class TestInterfaceImpl implements TestInterface,TestInterface1{ public void printStr(String str) {
    // TODO Auto-generated method stub

    }

    }
    建议楼主自己多做一下实验,对于程序来说做实验还是比较容易的
      

  3.   

    这个怎么看
    好像转成两个接口类型都可以调得了
    类似这样
    ITest1 t1 = new Test();
    t.func();
    ITest2 t2 = new Test();
    t.func();这个题他想了解什么哦 没看出来想干什么
    两个接口的问题可能是如果抛出异常的时候 有可能编译过不了 比如
    public interface ITest1
    {
    public void s(String a) throws Exception;
    }
    public interface ITest2
    {
    public void s(String a) throws NullPointerException;
    }
    public class Test implements ITest1,ITest2
    { @Override
    public void s(String a) throws Exception
    {
    // TODO Auto-generated method stub

    }

    }
      

  4.   

    我在Eclipse里面试过了,是我在面试说的一样(按顺序),其实这个问题我之前看那些java教程就有说过,只不过很模糊,还好没说错,只能等那个公司通知了。