繁体   English   中英

接口中可以有成员变量吗?

[英]Can we have member variables in Interface?

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

仅静态最终常量可以在实现接口的类中使用而无需限定。 另一方面,这些不合格的名称污染了名称空间。 您可以使用它们,并且它们的来源不明显,因为资格是可选的。

我对它们的含义不太了解? 有什么帮助吗?

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

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

  • 性质
  • 方法
  • 大事记
  • 类型定义(在C#中不合法)

我不完全确定上面的段落指的是什么。 虽然听起来像是基于文本,但实际上是指Java。 他们用语static(静态)和final(最终)通常与Java代码关联,而不与.Net(静态和只读)关联。

您能给我们更多的背景吗?

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

public static final int MY_CONSTANT = 1;

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

如果您在接口MyInterface中定义了这样的常数,仍然可以使用MyInterface.MY_CONSTANT引用它。 然而,在实施类MyInsterface你可以简单地使用MY_CONSTANT没有“MyInterface的 ”前缀。

它看起来很方便(按键次数较少),但可能会引起混淆,因为如果没有限定符(前缀),则不清楚该常量的原始定义位置。

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

.NET中不可用,对不起。

我希望它在那里。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM