C# 静态类与非静态类、静态成员的区别
来源:互联网 发布:复旦大学网络教育专业 编辑:程序博客网 时间:2024/06/05 10:35
自己测试代码:
1. 静态类是否可以继承静态类 ==> 不可以, 只能继承自 System.Object ;
2. 非静态类是否可以继承静态类 ==> 不可以;
using System;using System.Collections.Generic;using System.Text;using System.Threading;using System.Linq;namespace Leaf{ public class Test7 { public static void Main(string[] args) { S1.W1(); S2.W2(); Console.ReadLine(); } } public static class S1 { public static void W1() { Console.WriteLine("hello world 1!"); } } public static class S2 : S1 //错误提示:静态类“Leaf.S2”不能从类型“Leaf.S1”派生。静态类必须从对象派生。 //也就是说 只能继承自 System.Object { public static void W2() { Console.WriteLine("hello world 2!"); } } public class S3 : S1 //错误提示:无法从静态类“Leaf.S1”派生 { }}
……………………………………………………………………………………………………………………………………………………
原文: 点击打开链接
静态类
静态类的主要特性:
1:仅包含静态成员。
2:无法实例化。
3:是密封的。
4:不能包含实例构造函数。
静态成员
1:非静态类可以包含静态的方法、字段、属性或事件;
2:无论对一个类创建多少个实例,它的静态成员都只有一个副本;
3:静态方法和属性不能访问其包含类型中的非静态字段和事件,并且不能访问任何对象的实例变量;
4:静态方法只能被重载,而不能被重写,因为静态方法不属于类的实例成员;
5:虽然字段不能声明为 static const,但 const 字段的行为在本质上是静态的。这样的字段属于类,
静态构造函数
1:静态类可以有静态构造函数,静态构造函数不可继承;
2:静态构造函数可以用于静态类,也可用于非静态类;
3:静态构造函数无访问修饰符、无参数,只有一个 static 标志;
4:静态构造函数不可被直接调用,当创建类实例或引用任何静态成员之前,静态构造函数被自动执行,并且
注意:
1:静态类在内存中是一直有位置的;
2:非静态类在实例化后是在内存中是独立的,它的变量不会重复,在使用后会及时销毁,所以不会出现未知
3:建议更多地使用一般类(非静态类)。
使用选择:
- 静态类与非静态类,静态成员的区别
- C# 静态类与非静态类、静态成员的区别
- 深入理解C# 静态类与非静态类、静态成员的区别
- C# 静态类与非静态类、静态成员的区别
- C# 静态类与非静态类、静态成员的区别
- C# 静态类与非静态类、静态成员的区别
- C# 静态类与非静态类、静态成员的区别
- 深入理解C# 静态类与非静态类、静态成员的区别
- 深入理解C# 静态类与非静态类、静态成员的区别
- 深入理解C# 静态类与非静态类、静态成员的区别
- C#中静态类与非静态类的区别
- 类的静态成员和非静态成员的区别
- 【转载】静态类与非静态类、静态成员的区别
- C#静态与非静态 类,成员、结构
- 静态成员与非静态成员区别
- c#中静态成员与非静态成员的调用
- 静态成员函数与非静态成员函数的区别
- 静态数据成员与非静态数据成员的区别
- 自定义按住按钮拖动窗体
- android 更新SDK 失败解决办法
- canvas讲解进阶篇四
- C#操作XML文件
- ubuntu svn安装和使用
- C# 静态类与非静态类、静态成员的区别
- c++中使用string代替new
- 在C#中什么是静态方法,,实例方法?
- Android之解析json数据
- android 设置listview 背景选择器
- Linux的环境变量
- HADOOP中的CRC数据校验文件
- jsp 验证码
- 重新签名Android pre-install APK