密封类
给某个类添加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{}
密封类不能被继承
注意:抽象类的作用是让别的类所继承于他,不能被定为密封的。
静态类
在某个类的前面添加static修饰符,此类为“静态类”,
在静态类中只能添加静态成员变量及静态成员方法,
静态类并不能被继承。静态类不能实例化为对象(不能new)。
使用静态类的时候,只能通过类本身去访问成员
静态类中的构造函数,不能公开,且必须是静态的
静态类的构造函数只能在第一次调用时使用一次,之后就不再使用
static class Test3
{static Test3() { }public static int a = 30; //注意:在静态类中不能使用空返回值函数public static bool Fn(){return a > 18;}
}
静态类不能被继承
静态类一般用来封装一些工具,如Math,SQLHelper,Convert,Console