C# 多态性的深入理解_C#教程-查字典教程网
C# 多态性的深入理解
C# 多态性的深入理解
发布时间:2016-12-28 来源:查字典编辑
摘要: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#教程学习
    编程开发子分类