面试体会二:面向对象之多态(一、理论知识)

今天又去面试了,试题中有问到对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不能同时用。

      抽象函数一定要定义在抽象类中。    

      抽象类不能实例化,而抽象函数没有执行代码,必须在非抽象的派生类中重写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值