Csharp:多态

本文深入探讨了面向对象编程中的多态概念,解释了如何通过父类引用调用子类方法实现多态性。同时,详细阐述了子类方法的覆盖和重写,包括覆盖的条件及重写的语法。通过理解这些概念,开发者能够更好地利用多态性提高代码的灵活性和可扩展性。
摘要由CSDN通过智能技术生成

什么是多态

        同一类对象,做同一类事情,表现出不同的状态

        多态  ==>  多种状态        

子类对象转换为父类类型

        可以隐式转换

        可以理解为栈内存储的是父类对象的指针

父类对象转换为子类类型

        需要强制转换

                (要转换的类型)对象 

                (对象)  as  要转换的类型【仅限引用类型】

                如果转换失败,则转换后的对象为null

        强制转换之前需要先进行类型判断,判断是否可以转换成功

                (对象)  Is  类型【仅限引用类型】

        

子类方法的覆盖
        前提条件:父类中有一个public函数,子类中没有该函数

                因为子类中并没有该函数,所以调用必是父类的

        前提条件:子类里已经有了该函数,父类里也有该函数

                此时,子类对象调用子类的该函数,父类对象调用父类的该函数

                这种子类的函数,可以称之为覆盖

                子类在书写该函数的时候,规范的写法应该是:

                        (访问修饰符)  new  返回值类型  函数名  (参数列表) 

                覆盖:子类也有该函数了,以后调用的时候就调用子类的该函数

子类方法的重写【表现出多态】

        首先,如果父类想要子类可以重写该函数

                那么父类的该函数必须是一个虚函数

                 (访问修饰符)  virtual返回值类型  函数名  (参数列表) 

        子类该怎么重写

                 (访问修饰符)  override  返回值类型  函数名  (参数列表) 

        重写:把子类和父类的该函数都重新写了一遍,有了新的内容

                此时,子类的对象,无论是不是转换成了父类的类型,都会执行重写后的该函数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值