• 十、密封类和密封方法


    密封类

    密封类可以用来限制扩展性,如果密封了某个类,则其他类不能从该类继承。

    如果密封了某个成员,则派生类不能重写该成员的实现。

    一个密封类是没有也不能继承的类,因此sealed关键字和abstract关键字不能同时使用。

    密封类除了不能被继承外,其他与非密封类一样。

    C#中声明密封类时需要使用sealed关键字。

    访问修饰符 sealed class 类名:基类或接口
    {
           //类成员      
    }
    
    public sealed class myClass //声明密封类
    {
           public int i=0;
           public void methed()
           {
               Console.WriteLine("密封类");
            }
    }    

    密封方法是为了重写基类的虚方法并提供具体的实现,同时防止其后继类(派生类)再次重写该虚方法。

    因此在密封方法中sealed关键字总是和override关键字同时使用。

    public/*基类的可访问性一定要高于子类的,平级也可以*/class Class1  
        {  
            public virtual void Write()  
            {  
                Console.WriteLine("未密封方法");  
            }  
        }  
    
    //如果一个类不希望将来在使用的过程中被继承,被派生,这时候可以采用关键字sealed  
        //虚方法virtual 抽象方法abstract的存在就是为了继承,为了派生,因此不能被放在sealed类中  
        public class Class2:Class1  
        {  
            public sealed override void Write()  
            {  
                Console.WriteLine("密封方法");  
            }  
        }  
    public class Class3:Class2  
        {  
           /* public override sealed void Write() 
            { 
                在Class2中该方法被密封,无法重写。 
            }*/  
        }  
  • 相关阅读:
    常用的字符串内建函数(三)
    常用的字符串内建函数(二)
    常用的字符串内建函数(一)
    Python 运算符
    Python标准数据类型--数字类型
    HTTPS及免费证书获取
    try...catch...finally
    加密和SSH认证
    全表更新锁表
    秩和比
  • 原文地址:https://www.cnblogs.com/baixiao/p/7710877.html
Copyright © 2020-2023  润新知