2017-02-11 11 views
1

У меня есть два интерфейса, как это:Как явным образом реализовать метод интерфейса 2, имеющий одну и ту же подпись в java?

interface IA{ 
    void show(); 
} 

interface IB{ 
    void show(); 
} 

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

В C# я могу сделать это с помощью «Явного интерфейса метода реализации», как это:

interface IA 
{ 
    void show(); 
} 
interface IB 
{ 
    void show(); 
} 

class Derived : IA, IB 
{ 
    void IA.show() 
    { 
     Console.WriteLine("Hello C#!"); 
    } 
    void IB.show() 
    { 
     Console.WriteLine("Hello World !"); 
    } 

} 

Есть ли способ или любое ключевое слово Java, чтобы решить эту проблему?

+0

Я так не думаю, что оба интерфейса будут использовать один и тот же метод. – JohnnyAW

ответ

2

Пока оба метода имеют одинаковый тип возвращаемого, они могут быть реализованы только в качестве одного метода в классе.

В противном случае они не могут быть реализованы и просматривается ошибка компиляции.

В JAVA нет возможности явно реализовать каждый метод для каждого интерфейса.

+1

OP не спрашивает, как он может реализовать один раз тот же метод из двух разных интерфейсов. Напротив, он хочет знать в этом случае, как дать две реализации в соответствии с реальным экземпляром происходит от первого или второго интерфейса. Что запрещено Java. – davidxxx

+0

Вот что я ответил в _ «В JAVA нет возможности явно реализовать каждый метод для каждого интерфейса». _ – KAD

+0

А, ок. это не очень понятно, поскольку вы ссылаетесь на требование типа возврата непосредственно перед «В противном случае они не могут быть реализованы и ошибка компиляции просматривается». и вы связываетесь с: «В JAVA нет способа явно реализовать каждый метод для каждого интерфейса». Это две разные особенности. – davidxxx

 Смежные вопросы

  • Нет связанных вопросов^_^