C# 方法重写

为什么需要重写

为了选择性复用,解决父类所定义方法在子类中不适用(虚方法),或父类没有实现(抽象方法),这样的方法子类可以重写。

方法重写有三种重写的方法

  1. 虚方法重写
  2. 重写方法重写
  3. 抽象方法重写

abstract 方法:在子类必须重,除非子类也是抽象类

virtual 方法:在子类可以重写,父类方法的做法与子类不同

override方法:已经重写过的方法,在子类还可以继续重写,除非被标识为sealed

                       方法重写时必须在方法前加override关键

sealed(密封)的作用 

  1. 放在类前封闭类,指示任何类都不可继承当前类

封闭类定义sealed修饰的类

封闭特点:不能被继承。不能有子类可以实例化!

   2.  放在重写方法前封闭方法,指示当前类的子类,不能再次重写该成员,sealed 用在方法前边,必须和override 在一起。sealed override 修饰的方法 叫封闭方法,只有重写方法才可以封闭

一、虚方法重写

1.1 什么是虚方法

          定义【语法】:用vritual关键修饰的已经实现的方法,即是虚方法 

          语义【含义】:虚方法表示一个可以在子类中重写的方法  【重写不重写都可以

1.2  虚方法重写 

  虚方法重写是多态实现的一种方式;

【步骤1:】父类中定义虚方法

【步骤2:】子类中定义重写方法

【重写方法定义:和父类中的方法名相同参数相同方法返回类型相同要加override】

下面是利用虚方法重写 计算圆、三角形、矩形的面积:

调用:

二、抽象方法重写

       具体抽象方法讲解https://blog.csdn.net/qq_40229737/article/details/104009527

补充:

      依赖倒置 倒转也可以说( 依赖抽象)原则

      客户端代码尽量依赖抽象的组件,因为抽象的是稳定的。实现是多变的。

      分析需求中的名词  具体来说(多变):狗 猫  ;然后【泛化】角色 抽象(稳定)

       代码实现:定义 实现父类 抽象 【特化】实现子类 具体

       调用:依赖抽象意思是说:优先选择父来完成,父不定才找子!!

 

                         

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值