zoukankan      html  css  js  c++  java
  • 简述c#之sealed 修饰符

    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");            
           }   

    在基类(父类)中用virtual修饰符声明一个虚方法,然后在在派生类(子类)中用override修饰符覆盖基类虚方法。表明是对基类的虚方法重载
    这种优势在于它可以在程序运行时再决定调用哪一个方法,这就是所谓的“运行时多态”
    或者称动态绑定。


           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

  • 相关阅读:
    Python爬虫模拟登录的github项目
    pandas常用数据清洗方法
    5分钟了解swagger
    OpenAuth.Net.landv分支之旅开始制作CRM系统
    捷信达会员管理系统SQL语句相关
    EXcel vba 获取批注信息
    西软报表处理语句相关
    中软酒店管理系统CSHIS操作手册_数据结构_数据字典
    金蝶k3密码批量修改
    K3 WISE 开发插件《SQL语句WHERE查询-范围查询/模糊查询》
  • 原文地址:https://www.cnblogs.com/TJessica/p/7059391.html
Copyright © 2011-2022 走看看