zoukankan      html  css  js  c++  java
  • static类为什么不能用sealed关键字修饰

    今天在写代码时,顺手把一个static 类前面加上sealed关键字,结果编译时报错:” 类不能既是静态的又是密封的“。很是纳闷,sealed字段修饰类不是代表该类不能被继承吗,于是我去掉sealed关键字,生成一个dll。然后用Reflector查看了这个这个类的IL,结果发现如下情况:

    public static class Utility 被翻译成下面的代码了

    .class public abstract auto ansi sealed beforefieldinit Utility      extends [mscorlib]System.Object
     
     我想应该是static编译成IL时翻译成了abstract auto ansi sealed,在类前面再加一个sealed那就多余了,然后我查了下资料
     发现static类必须直接从System.Object继承,不实现任何接口,因为接口方法只能通过类的实例来调用;到这里我也明白了个大概了. 后来在博客园搜索了下,发现有人已经在http://kb.cnblogs.com/a/1052558/这篇文章里研究过了这个问题。
     
    扫描上面二维码关注我
    如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
  • 相关阅读:
    l1-010
    l1-009
    L1-008修改
    l1-008
    Codeforces Round #406 (Div. 2)
    求N!的长度【数学】 51nod 1058 1130
    51nod 1090 & 1267 【二分简单题】
    Codeforces Round #405 (Div. 2)
    Codeforces Round #404 (Div. 2)
    PAT 天梯赛真题集(L2、L3)
  • 原文地址:https://www.cnblogs.com/kerrycode/p/1695286.html
Copyright © 2011-2022 走看看