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