C#几个例子[静态构造函数,继承,虚方法]
2010-04-09 19:18
513 查看
1.静态构造函数的执行 静态构造函数用于初始化任何静态数据,或用于执行仅需执行一次的特定操作。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数。
代码
using System;
public class A
{
public static int X;
static A()
{
X = B.Y + 1;
}
}
public class B
{
public static int Y = A.X + 1;
static B()
{
}
}
public class C
{
public static void Main()
{
Console.WriteLine( "X={0},Y={1}", A.X, B.Y );
}
}
2,1
静态构造函数具有以下特点:
静态构造函数既没有访问修饰符,也没有参数。
在创建第 一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。
无法直接调用静态构造函数。
执行shunxu1. 先static 变量初始化
2. 再static 构造函数
3. 实例化时先初始化非静态变量,后自动调用构造函数.
继承中new 和override 区别
public abstract class A
{
public A()
{
Console.WriteLine('A');
}
public virtual void Fun()
{
Console.WriteLine("A.Fun()");
}
}
public class B : A
{
public B()
{
Console.WriteLine('B');
}
public new void Fun()
{
Console.WriteLine("B.Fun()");
}
public static void Main()
{
A a = new B();
a.Fun();
}
}
结果是:
A
B
A.Fun()
因为B中是New, 如果是override重写这方法,则会
3
代码
public class A
{
public virtual void Fun1(int i)
{
Console.WriteLine(i);
}
public void Fun2(A a)
{
a.Fun1(1);
Fun1(5);
}
}
public class B : A
{
public override void Fun1(int i)
{
base.Fun1(i + 1);
}
public static void Main()
{
B b = new B();
A a = new A();
a.Fun2(b);
b.Fun2(a);
}
}
结果:
2
5
1
6
相关文章推荐
- C#几个例子[静态构造函数,继承,虚方法]
- C#学习之静态成员和非静态成员,构造函数,方法,方法参数,操作符重载,事件
- C#构造函数的继承和引用方法
- C#继承中的静态构造函数和base关键字使用
- C#基础知识复习1代码规范-执行流程(c#)-面向对象-引用命名空间-封装-继承-访问修饰符-虚方法-静态成员-多态-抽象类等
- 几个PHP的静态方法的程序例子
- c#中静态构造函数以及例子
- JAVA基础:子类、父类继承关系 静态块、非静态块、构造函数初始化顺序性、静态非静态方法覆盖
- c#学习系列之静态类,静态构造函数,静态成员,静态方法(总之各种静态)
- 不包含继承时类中的静态块、静态方法、非静态方法、构造函数的执行顺序?
- c#关于几个构造函数 静态构造函数 重写 非重写的实例化 测试试题
- java继承中父类和子类静态、非静态代码块,构造函数,静态方法的执行顺序
- WIN7 UAC/结构体的Equals方法/C# 开发wince程序,窗口上总留有一块空白区域/静态构造函数
- 小例子大智慧1---C#继承,构造函数
- extern外部方法使用C#简单例子
- java继承静态变量与静态方法
- (教学思路 C#之类七)类和构造方法的继承(base关键字、Object类)
- C# 简单的方法与属性的继承
- Chapter 7、面向对象(三)--- 静态、方法重载、继承
- C#中继承实现父类方法、重写、重载