java - 如何使用JAVA显式实现接口(interface)成员?

标签 java c#

我有一个场景,我们过去使用 C# 中的显式实现来实现接口(interface)成员。目前我需要在 JAVA 中实现相同的行为,但无法显式调用接口(interface)成员,因此将实现的成员标记为公共(public)会显示错误。我是 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;
}

最佳答案

接口(interface)只是为了向其他类公开公共(public)功能。您可以使用接口(interface)来允许代码外部的人员与您的代码进行交互。为此,您需要将方法定义为 public。

如果您想强制某人重写一组给定的私有(private)方法,您可能需要声明一个具有一系列抽象 protected 方法的抽象类。

关于java - 如何使用JAVA显式实现接口(interface)成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41340585/

相关文章:

java - 可以从java中的另一个类调用类的main()方法吗

java - 删除字符串中的重复项并创建新字符串

c# - 根据 ViewModel 的属性更改 div 类

c# - 尝试在 Windows 窗体中使用 SQL 存储过程

c# - 为什么 PreIncrement 类型的 PrefixUnaryExpressionSyntax 允许使用 ParanthesisedExpressionsSyntax 的操作数?

Java:声明一个变量但说它不存在

java - 具有两个输出的重构方法

java - 这个 Java 代码在 C# 中相当于什么? (设置请求实体)

c# - 在 C# 中的运行时填充/更新枚举值

c# - Google Speech API v2 结果为空白