当前位置: 首页 > 面试题库 >

C#密封vs Java Final

朱乐逸
2023-03-14
问题内容

有人能告诉我以下使用方法sealed不能编译的原因吗?然而,如果我更换sealedfinal和编译如Java,它的工作原理

private sealed int compInt = 100;
public bool check(int someInt)
{
    if (someInt > compInt)
    {
        return true;
    }
    return false;
}

问题答案:

这是因为final在Java中,具体取决于您使用它,而意味着很多不同的东西sealed在C#应用 类和继承的虚拟成员(方法,属性,事件)。

在Java final中可以应用于:

  • classes ,这意味着该类不能被继承。这相当于C#的sealed
  • methods ,这意味着该方法不能在派生类中重写。这是C#中的默认设置,除非您将方法声明为,virtual并且在派生类中将其声明为,可以防止sealed再次使用其他派生类。这就是为什么您看到sealedC#中的final成员比Java中的成员少得多的原因。
  • 字段变量 ,这意味着它们只能初始化一次。对于字段,C#中的等效项是readonly


 类似资料:
  • 本文向大家介绍轻松学习C#的密封类,包括了轻松学习C#的密封类的使用技巧和注意事项,需要的朋友参考一下 密封类概述        并不是所有的类都可以被继承,C#语言中就是密封类。在C#语言中我们可以把类声明为sealed。这表示不能继承该类,如果想要继承那么编译器肯定会报错。在把类或方法标记为sealed时,最可能出现的情形时:如果要对库,类或自己编写的其他类进行操作,则重写某些功能会导致编译错

  • 主要内容:1、public,2、private,3、protected,4、internal,5、protected internalC# 是一门面向对象编程语言,面向对象编程语言有三大特性,分别是封装、 继承和 多态。所谓封装就是将一个或多个项目(函数)集合在一个单元中,这个单元称之为类,我们可以根据需要通过访问权限修饰符来设定类中成员的范围和可见性。C# 中的访问权限修饰符有以下几种: public:公共的,所有对象都可以访问,但是需要引用命名空间; private:私有的,类的内部才可以访

  • 下面的代码在无法通过条件颜色时编译。深色和彩色。浅色,因为这两个类是抽象的。 我错过什么了吗?

  • 主要内容:Java16 sealed密封类的示例Java 15 引入了一个密封类作为预览功能,它提供了对继承的细粒度控制。Java 16 提供了一些小的增强功能,并将此功能保留为预览版。以下是密封类需要考虑的要点 : 密封类是使用 sealed 关键字声明的。 密封类允许使用 permit 关键字声明哪个类可以是子类型。 扩展密封类的类必须声明为sealed 、non-sealed或final的。 密封类有助于在继承中创建有限且可确定的类层次结

  • 主要内容:Java15 sealed 密封类的示例Java 15 引入了一个密封类作为预览功能,它提供了对继承的细粒度控制。以下是密封类需要考虑的要点 : 密封类是使用 sealed 关键字声明的。 密封类允许使用 permit 关键字声明哪个类可以是子类型。 继承密封类的类必须声明为sealed 、non-sealed或final的。 密封类有助于在继承中创建有限且可确定的类层次结构。 Java15 sealed 密封类的示例 ApiTeste

  • 封装Crypto作为egg.js 专用加密函数 安装 npm install crypto --save 配置文件配置 config / config.default.js config.crypto = { secret: 'ghdgw@45njashdaksh2!#@3nxjdas_*672' }; 扩展application对象 app / extend / application.js