手机
当前位置:查字典教程网 >编程开发 >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# Rank属性与GetUpperBound方法的深入分析

C#零基础学习理解委托

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

C#中接口(interface)的理解

C# 获取属性名的方法

C#动态执行字符串(动态创建代码)的实例代码

深入理解C#中常见的委托

深入HTTP head的使用详解

精品推荐
分类导航