密封类和静态类

密封类

给某个类添加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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值