静态类与非静态

366 阅读1分钟

一、静态与非静态

静态与非静态的最大的区别就是:

  • 静态在程序在程序启动的那一刻会分配内存,直到程序结束运行才会释放资源

  • 非静态在实例化时分配内存,每次实例化都会重新分配一次内存

二、静态类与非静态类

1.区别
静态类非静态类
仅有静态成员可以有实例成员,也可以有静态成员
无法实例化可以实例化
无法被继承可以被继承
2.使用
  • 如果想要把一个类当作“工具类”使用,这个时候可以考虑使用静态类
  • 静态类在程序生存期内一直存在,所以静态类在整个项目中资源共享

三、静态成员与实例成员

  • 静态成员只被创建一次,所以只有一份;实例成员有多少个对象,就有多少份。
  • 当一个成员需要被共享和反复调用的时候,定义为静态成员。
  • 在静态方法中,不能直接调用实例成员。
  • this/base关键字在静态方法中不能使用,因为对象可能不存在。
  • 非静态类可以包含静态的方法、字段、属性或事件。
  • 静态方法只能被重载,不能被重写,因为静态方法不属于类的实例成员。

[参考](C#基础知识之静态和非静态 - 搬砖滴 - 博客园 (cnblogs.com))