有人能告诉我以下sealed
的使用无法编译的原因吗?而如果我将sealed
替换为final
并将其编译为Java,则可以正常工作。
private sealed int compInt = 100;
public bool check(int someInt)
{
if (someInt > compInt)
{
return true;
}
return false;
}
最佳答案
这是因为Java中的final
取决于您使用它的地方,因此意味着许多不同的事情,而C#中的sealed
仅适用于类和继承的虚拟成员(方法,属性,事件)。
在Java中,final
可以应用于:
sealed
。 virtual
,并且在派生类中可以再次使用sealed
防止进一步的派生类使用此方法。这就是为什么您在C#中看到的sealed
成员比Java中的final
成员少得多的原因。 readonly
。 关于c# - C#密封vs Java Final,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10170633/