page contents

什么是多态?

轩辕小不懂 发布于 2022-03-01 14:53
阅读 412
收藏 0
分类:框架系列
3190
Nen
Nen
- 程序员

通过继承实现的不同对象,调用相同的方法,产生不同的执行结果.

C#支持两种类型的多态,编译时的多态和运行时的多态。

(1)编译时的多态:

编译时的多态是通过重载来实现的,对于非虚的成员来说,系统在编译时,根据传递的参数类型,个数以及返回类型的不同决定实现不同的操作.

重载:

public int Sum(int x,int y)

public int Sum(int x,int y,int z)

public double Sum (Double x,Double y)

重载特点:

方法名称必须相同

参数列表必须不同

返回值类型可以不同 

(2)运行时的多态:

运行时的多态是指系统直到运行时,才根据实际情况实现何种操作.

运行时的多态可以通过virtual-override(虚成员覆盖实现)以及abstract-override(抽象方法覆盖实现)两种方式来实现.

通过override实现覆写注意的几点

只有虚方法和抽象方法才能被覆写

子类和基类中的方法必须具有相同的方法名称,参数个数,参数类型以及返回值类型.

总结:

编译时的多态使运行速度更快,就像const编译时解析.

运行时的多态带来了高度灵活以及抽象的特点. 

请先 登录 后评论