c# 多态性
来源:互联网 发布:域名与ip地址一一对应 编辑:程序博客网 时间:2024/05/17 20:26
首先理解一下什么叫多态。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。
多态性通过派生类覆写基类中的虚函数型方法来实现。
多态性分为两种,一种是编译时的多态性,一种是运行时的多态性。
编译时的多态性:编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。
运行时的多态性:运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中运行时的多态性是通过覆写虚成员实现。
下面我们来分别说明一下多态中涉及到的四个概念:重载,覆写,虚方法和抽象方法。
重载和覆写的区别:
重载
类中定义的方法的不同版本
public int Calculate(int x, int y)
public double Calculate(double x, double y)
特点(两必须一可以)
方法名必须相同
参数列表必须不相同
返回值类型可以不相同
覆写
子类中为满足自己的需要来重复定义某个方法的不同实现。
通过使用override关键字来实现覆写。
只有虚方法和抽象方法才能被覆写。
要求(三相同)
相同的方法名称
相同的参数列表
相同的返回值类型
最后再来介绍一下虚方法和抽象方法
虚方法:
声明使用virtual关键字。
调用虚方法,运行时将确定调用对象是什么类的实例,并调用适当的覆写的方法。
虚方法可以有实现体。
必须被派生类覆写的方法。 可以看成是没有实现体的虚方法。 如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其他一般方法。
抽象方法:
- C#多态性
- C#多态性
- c# 多态性
- c# 多态性
- c# 多态性
- C#多态性
- c# 多态性
- C# 多态性
- C#多态性
- C#多态性
- C# 多态性
- C# 多态性
- C# 多态性
- 多态性C#
- C# 多态性
- C# 多态性
- C# 多态性
- C# 多态性
- C# get and set
- 定时器的使用 之 SetWaitableTimer
- TSM进阶2--安装与配置之一
- 安装配置informix hdr
- 视频检测与触发介绍
- c# 多态性
- 前台JS脚本出现“Automation服务器不能创建对象“错
- 计算器(JAVA版)
- 类与类关系的UML图与代码表现
- sprintf和sscanf函数的区别和联系
- ClassLoader类
- Perl 中的正则表达式
- 谈谈关于INI的读写
- IFRAME 自动适应高度