面试体会二:面向对象之多态(一、理论知识)
来源:互联网 发布:工作的意义 知乎 编辑:程序博客网 时间:2024/06/06 01:00
今天又去面试了,试题中有问到对C#中多态的理解,并写个简单的例子。
以此为动力今天详细看了一下C#中的多态应该怎么去理解(2009-05-15)
多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。
多态性通过派生类覆写基类中的虚函数型方法来实现。
所有的面向对象的语言都具有多态的特性,C#有多态性,那么C++,Java也都有.
多态可以分为静态多态(方法的重载)和动态多态(虚方法的重写)。
(1)静态多态 也称为编译时的多态 是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。
(2)动态多态 也称为运行时的多态 是指直到系统运行时,才根据实际情况决定实现何种操作。C#中运行时的多态性是通过覆写虚成员实现。
多态中涉及到的四个概念:重载,覆写,虚方法和抽象。
(1)重载 overload(方法的重载)方法名相同,参数不同,返回值不同可以称为重载。
声明同名的两个方法
public int Calculate(int x, int y)
public double Calculate(double x, double y)
(2)覆盖 override 派生类重写父类的某个虚方法(Virtual Method)。方法名相同,参数相同,返回值相同。(3)虚方法: virtual 使用关键字Virtual声明,属性和方法可以声明为虚方法,成员和Static 函数都不可以声明。虚方法可以有方法体。
(4)抽象 分为抽象方法和抽象类。
抽象函数也是虚拟的,可以看成是没有实现体的虚方法, Virtual 和abstract不能同时用。
抽象函数一定要定义在抽象类中。
抽象类不能实例化,而抽象函数没有执行代码,必须在非抽象的派生类中重写。
- 面试体会二:面向对象之多态(一、理论知识)
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象(三)之多态
- php面向对象之多态(1)
- java面向对象(五)之多态
- python入门(二十九):面向对象之多态
- 面向对象理论知识
- 硕士、博士论文写作几大自动编号功能(一)
- Linux常用命令
- iOS NSInvocation用法
- 移动应用被苹果拒绝上架的9个意外原因
- 50个c/c++ 源代码网站
- 面试体会二:面向对象之多态(一、理论知识)
- 应届毕业生学java
- CSS颜色代码,二进制颜色代码
- oracle 当中where条件
- Socket I/O模型之事件选择(WSAEventSelect)
- SQL基础3
- 常用新闻组服务器
- 程序的装入和链接
- 非阻塞同步算法