2015-03-24 2 views
-5

Если два интерфейса имеют одно и то же имя метода, но другой параметр, который вызывается? если не вызвано, почему?как два интерфейса используют два метода

interface a { 
    void show(int i); 
} 

interface b { 
    void show(); 
} 

class InterfaceTest implements b, a { 
    public void show() { 
     System.out.println("this is show"); 
    } 

    public void show(int a) { 
     System.out.println("this is show1"); 
    } 

    public static void main(String args[]) { 
     InterfaceTest it = new InterfaceTest(); 
     it.show(); 
     it.show(1); 
    } 
} 
+3

Что значит «какой из них вызывается?» Вы можете выяснить, какой из них вызывается, просматривая аргументы, переданные методу при его вызове. –

+5

Пожалуйста, приложите немного усилий для форматирования вашего вопроса. –

+0

Я голосую, чтобы закрыть этот вопрос не по теме, потому что вопрос не имеет смысла. –

ответ

2

Подпись метода определяет, какой из них будет вызываться.

Подпись ваших двух методов показа отличается. Первый не принимает никакого аргумента, второй принимает аргумент int.

Как аргумент должен быть предоставлен при вызове метода, метод вызова был определен.