【问题标题】:Can we have member variables in Interface?我们可以在接口中有成员变量吗?
【发布时间】:2010-08-20 16:42:24
【问题描述】:

我在某处读到接口可以有成员变量。

仅静态最终常量,可以使用 他们在课堂上没有资格 实现接口。在 其他爪子,这些不合格的名字 污染命名空间。您可以使用 他们,而且他们在哪里并不明显 来自 资格是可选的。

我不太明白他们的意思?有什么帮助吗?

【问题讨论】:

    标签: vb.net variables interface


    【解决方案1】:

    您阅读的内容不正确。接口不能有成员变量。

    在 VB.Net 中,接口内唯一允许的定义是

    • 属性
    • 方法
    • 活动
    • 类型定义(在 C# 中不合法)

    我不完全确定上述段落指的是什么。根据文本,虽然它听起来像是指 Java。他们的短语 static 和 final 最常与 Java 代码相关联,而不是 .Net(静态和只读)。

    你能给我们更多的背景信息吗?

    【讨论】:

    • 我从 C# 和 OOOPS 概念的 ppt 中得到了那个段落。所以按照你的说法,在 VB.NET 中我们不能在接口仪式中有任何变量?
    【解决方案2】:

    如果你在 MyClass 类中定义这样的常量:

    public static final int MY_CONSTANT = 1;

    您可以在其他类中使用 MyClass 限定符将其称为 MyClass.MY_CONSTANT。这暗示了常量定义的位置。

    如果您在接口 MyInterface 中定义了这样的常量,您仍然可以使用 MyInterface.MY_CONSTANT 来引用它。然而,在实现 MyInsterface 的类中,您可以简单地使用 MY_CONSTANT 而无需“MyInterface”前缀。

    它可能看起来很方便(更少的击键),但可能会导致混淆,因为没有限定符(前缀)就不清楚最初定义常量的位置。

    【讨论】:

    • 这个问题用 Vb.Net 标记,你给出的答案似乎是 java 的。
    • 同意。但是问题表明,尚不清楚灰色框中的描述是什么意思,不清楚它是否适用于 VB。
    【解决方案3】:

    将成员变量添加到接口将通过后门引入 MI。

    在 .NET 中不可用,抱歉。

    我希望它在那里。

    【讨论】:

    • 与多重继承无关。
    • 如果它有效,它将与多重继承有关。
    猜你喜欢
    • 2016-06-22
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 2020-10-26
    • 2021-12-25
    • 1970-01-01
    相关资源
    最近更新 更多