标签:
1. 静态方法 VS 实例方法
2. 静态类
(1)常见的静态类:Math、Console、Convert
(2)静态类中只能包括静态成员、静态构造函数、常量成员,不能有实例成员,不能有普通构造函数
(3)静态构造函数不能有参数、不能有访问修饰符(默认为private)
静态构造函数的作用:用来初始化静态成员
在加载类的时候使用,只会执行一次
3. 使用建议
当多个对象共享同一个数据的时候就可以在实例类中加入静态成员。
少使用静态类,静态类、静态成员所分配的内存在程序退出时才会释放
在项目中需要频繁用到的一些工具类,例如:Math、Console、Convert 等。或者模拟“全局变量”的时候使用。
4. 静态类的继承问题
a)静态类不能被其他类继承
b)如果在程序中我们让静态类继承其他类,编译器会报错:“静态类必须从对象派生”。
这句话我们应该这样翻译比较恰当:静态类只能从Object类中派生
所以,静态类只能继承Object类。
c)静态类不能实现任何接口,因为接口中的成员都是实例成员。
d)sealed:(*)密封类,不能被继承。
1.sealed关键字,表示类不能被继承。(密封类)
2.密封类表示不能被继承。String类。
e)静态类的本质abstract+sealed(*,知道即可)static
1.静态类不能被实例化:abstract
2.静态类不能被继承:sealed
class Program { static void Main(string[] args) { MyHelper.name = "lk"; MyHelper.ShowMyMsg(); MyClass.Say(); } } public static class MyHelper : Object { //报错,不能声明实例成员 //public int num; //public void ShowMsg() { Console.WriteLine("msg"); } //只能声明静态成员 public static string name; public static void ShowMyMsg() { Console.WriteLine("MyMsg"); } private static void Show() { } //可以声明常量 public const int MAX = 100; static MyHelper() { name = "123456789"; } }
标签:
原文地址:http://www.cnblogs.com/lcxBlog/p/4500729.html