静态类
定义:添加static字段后,变为静态类,如:public static class Test
特点:
1 : 不能被实例化。
2 : 仅包含常量和静态成员。
3 : 不能被继承。
4 : 不能包含实例构造函数,可以包含静态构造函数。
5 : 静态构造函数不能被调用
代码如下:
using UnityEngine;
public static class Test1
{
static Test1()
{
Debug.Log("静态函数的静态构造函数执行");
a = 10 ;
}
public static int a;
public static int b = 10;
}
public class Test2
{
}
public class Test : MonoBehaviour
{
private int b = Test1.a;
public int c = Test1.b;
private void Start()
{
Debug.Log("b的值为"+b);
Debug.Log("c的值为" + c);
}
}
静态函数也是可以直接调用里面的变量,在调用变量的时候执行构造函数,并且执行一次
结果:
抽象类
定义:添加abstract字段后,变为抽象类,如:public abstract class Test
特点:
1 不能被实例化,但支持构造函数。
2 可只提供部分函数实现,也可只声明抽象类。
3 抽象类可以继承抽象类,也可以继承普通类,同样也可以把做基类派生普通类
4 静态构造函数只执行一次,其他构造函数根据实例化的个数来进行执行
5 抽象类里定义抽象函数,不能有函数主体,要在子类写函数主体(抽象函数只能在抽象类里面)
代码如下:
using UnityEngine;
public abstract class Test1
{
public abstract void Show();
}
public class Test2 : Test1
{
public override void Show()
{
Debug.Log("抽象函数实现");
}
}
public class Test : MonoBehaviour
{
public Test2 test2 = new Test2();
private void Start()
{
test2.Show();
}
}
实现结果如下:
密封类
定义:添加sealed字段后,变为密封类,如:public sealed class Test
特点:
1 不能被继承,但是可以继承其他的类或者接口(接口后面学习时会写)
2 密封类里面的类不能声明为sealed
密封类的作用是用来限制扩展性。具体的用法会进行深入了解。