手机
当前位置:查字典教程网 >编程开发 >C#教程 >C# 多态性的深入理解
C# 多态性的深入理解
摘要:MSDN上面的定义:通过继承,一个类可以有多种类型:可以用作它自己的类型,任何基类型,或者在实现接口时用作任何接口的类型。从两个方面来说明多...

MSDN 上面的定义:通过继承,一个类可以有多种类型:可以用作它自己的类型,任何基类型,或者在实现接口时用作任何接口的类型。

从两个方面来说明多态

1.在运行时,方法参数和集合或者是数组等位置,派生类的对象都可以作为基类的对象处理,发生此情况时,该对象的声明类型不再与运行时类型相同。

2.基类定义实现虚方法,派生类重写这些方法,在运行时,CLR会查找运行时类型,并且调用派生类重写的方法.

复制代码 代码如下:

class Shape

{

public virtual void Draw()

{

Console.WriteLine("Draw a shape");

}

}

class Circle : Shape

{

public override void Draw()

{

Console.WriteLine("Draw a circle");

}

}

class Rectangle : Shape

{

public override void Draw()

{

Console.WriteLine("Draw a Rectangle");

}

}

class Triangle : Shape

{

public override void Draw()

{

Console.WriteLine("Draw a Triangle");

}

}

class Programm

{

static void Main()

{

//此次就说明了,派生类对象可以作为基类对象进行处理

Shape[] shapes =

{

new Circle(),

new Rectangle(),

new Triangle()

};

foreach (Shape s in shapes)

{

//调用Draw()方法的时候,调用了派生重写的方法,而不是基类

s.Draw();

}

}

}

【C# 多态性的深入理解】相关文章:

C# 泛型数组学习小结

深入分析C#中处理和键盘相关事件的详解

c#中DateTime.Now函数的使用详解

遍历文件系统目录树的深入理解

对c#中委托的理解

C# 常见操作符整理

C#异步调用的好处和方法分享

基于C#委托的深入分析

c# 匿名方法的小例子

c# 泛型类型参数与约束的深入分析

精品推荐
分类导航