密封类

给某个类添加sealed关键字,这个类为“密封类”

密封类不能被其他类所继承。

sealed class Test//创建一个密封类
{
    //密封类可以有构造函数
    public MySealed()
    {
    
    }
    //密封类可以有属性和字段
    public int MyProperty { get; set; }
    private string name = "hello";
    
    public static void SayHello()
    {
        // 静态方法只能访问静态成员,不能访问实例成员
        Console.WriteLine("密封中可以有静态成员");
        //Console.WriteLine(name);  // 报错
    }
    
    public void SayHello1()
    {
        // 实例方法中,可以访问实例成员,也可以访问静态成员
        Console.WriteLine("密封中可以有实例成员"+ name);
        SayHello();
    }
    public void Fn()
    {
        Console.WriteLine("hello");
    }

    //public abstract void SayHello2();  // 不能有抽象成员
    
    /* public virtual void SayHello3()  // 不能有虚成员
     {
         Console.WriteLine("fdjslfjldj");
     }*/
    
}

//不能继承密封类
// class Test1 : Test{}

密封类不能被继承

image.png


注意:抽象类的作用是让别的类所继承于他,不能被定为密封的。

image.png


静态类

在某个类的前面添加static修饰符,此类为“静态类”,

在静态类中只能添加静态成员变量及静态成员方法,

静态类并不能被继承。静态类不能实例化为对象(不能new)。

使用静态类的时候,只能通过类本身去访问成员

静态类中的构造函数,不能公开,且必须是静态的

静态类的构造函数只能在第一次调用时使用一次,之后就不再使用

static class Test3
{
    static Test3() { }
    public static int a = 30; 
    //注意:在静态类中不能使用空返回值函数
    public static bool Fn()
    {
        return a > 18;
    }
}

静态类不能被继承

image.png


静态类一般用来封装一些工具,如Math,SQLHelper,Convert,Console

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部