私は、C#で明示的な実装を使用してインターフェイスメンバを実装したシナリオを持っています。現在、私はJAVAでも同じ動作をする必要がありますが、インタフェースメンバを明示的に呼び出すことはできませんでした。したがって、実装されたメンバをpublicとしてマークするエラーが表示されます。私はJAVAには新しく、親切に私にJAVAで同じ動作を達成する方法を教えてください。JAVAを使用してインターフェイスメンバーを明示的に実装する方法は?
C#コード:
public class WF_33470: IData
{
private string m_data = string.Empty;
string IData.Element
{
get
{
return m_data;
}
}
string IData.Data()
{
get
{
return "Hello World";
}
{
}
internal interface IData
{
string Element
{
get;
}
string Data();
}
Javaコード:
public class WF_33470 implements IData
{
private String m_data = "";
String getElement()throws Exception{//throws error to change the modifier to be public, but i need to achieve explicit implementation here
return m_data;
}
String Data()throws Exception{//throws error to change the modifier to be public, but i need to achieve explicit implementation here
return "Hello World";
}
}
interface IData
{
String getElement()throws Exception;
String Data()throws Exception;
}
:あなたは、あなたが以下のよう
abstract
クラスに行きたいと思うかもしれません下の可視性を持っているしたい場合はとしてそれらを定義する必要があり
自動的に 'public'として定義され、継承時に可視性を下げることができないので、インタフェースを実装しながらpublicとして定義する必要があります(public String Data()throw Exs {...}) – SomeJavaGuy
何あなたは '明示的な実装 'を意味しますか? @ KevinEscheは正しいです、常に常public([related QA](http:// stackoverflow。com/questions/9614708/why-should-we-declare-interface-methods-as-public)を参照してください)。 –
継承されたメンバーの可視性を低下させる可能性はありますか? – Karthikk