首页 IP地址查询 | Alexa排名查询 | 手机归属地查询
设为首页 收藏本站
  • 网络编程网络编程
  • 软件编程软件编程
  • 数据库技术数据库技术
  • 编程学院
  • 业界资讯 业界资讯
  • 源码中心源码中心
  • 会员中心会员中心
  • 页面导航: 首页C#编程杂项 → sealed 修饰符是干什么的?

    sealed 修饰符是干什么的?

    发布:Basic365.com 发布日期:2008-08-02 字体:[增加 减小] 类型:转载

    sealed 修饰符表示密封
    用于类时,表示该类不能再被继承,不能和 abstract 同时使用,因为这两个修饰符在含义上互相排斥
    用于方法和属性时,表示该方法或属性不能再被继承,必须和 override 关键字一起使用,因为使用 sealed 修饰符的方法或属性肯定是基类中相应的虚成员
    通常用于实现第三方类库时不想被客户端继承,或用于没有必要再继承的类以防止滥用继承造成层次结构体系混乱
    恰当的利用 sealed 修饰符也可以提高一定的运行效率,因为不用考虑继承类会重写该成员
    示例:
    using system;
    using system.collections.generic;
    using system.text;
    namespace example06
    {
        class program
        {
            class a
            {
                public virtual void f()
                {
                    console.writeline("a.f");
                }
                public virtual void g()
                {
                    console.writeline("a.g");
                }
            }
            class b : a
            {
                public sealed override void f()
                {
                    console.writeline("b.f");
                }
                public override void g()
                {
                    console.writeline("b.g");
                }
            }
            class c : b
            {
                public override void g()
                {
                    console.writeline("c.g");
                }
            }
            static void main(string[] args)
            {
                new a().f();
                new a().g();
                new b().f();
                new b().g();
                new c().f();
                new c().g();
                console.readline();
            }
        }
    }
    结果:
    类 b 在继承类 a 时可以重写两个虚函数,如图所示:

    由于类 b 中对 f 方法进行了密封, 类 c 在继承类 b 时只能重写一个函数,如图所示:

     
    控制台输出结果,类 c 的方法 f 只能是输出 类b 中对该方法的实现:
    a.f
    a.g
    b.f
    b.g
    b.f
    c.g 


    Tags: sealed
    为配合网络严查,文章评论将关闭敬请谅解.
    同 类 文 章
    最 近 更 新
    热 点 排 行