C#基础概念 从新理解继承多态

继承 inherit 内容
先了解继承概念因为多态概念要基于继承.
官方概念:
Inheritance enables you to create new classes that reuse, extend, and modify the behavior that is defined in other classes.

  • 基类中可以有abstract和virtual方法,他们是多态性的基础

  • Abstract class - 当希望基类不能通过new来实例化,必须从这个类派生出子类才能使用这个类时,就把他标记为abstract class. Abstract class中可以有field, property,有完全实现的方法,抽象方法和虚方法

  • Interface 接口理解成一个特殊的abstract class,特殊在他的所有成员都必须是abstract,必须在子类中实现。
    接口的成员自动是public,不能是static,也不能含有常量,字段成员
    意义:如果有手机,相机,Mp4三种类型的电子产品,比起分别在类中写不同名称和内容的’Charge’方法,让他们都继承IChargable接口而通知他们实现接口中的Charge方法更有利于统一化

  • 结构体不能实现继承,但是可以实现接口
  • 类可以将自身或其成员声明为 sealed,从而禁止其他类从该类自身或其任何成员继承
  • 派生类隐藏基类成员(在多态new和virtual中解释)

多态 Polymorphism内容
Ref: 多态解释
new的用法比较陌生,记录一下
用new关键字代替override位置,可以隐藏基类成员.
现在有三种类:基类类型的基类,基类类型的子类,子类类型的子类。
在子类中用new更改一个成员时,只对子类类型的子类有效,从其他两种类型里调用这个new成员时,都还是基类的样子.
用override重写方法或属性后,就改变或者延伸了原方法,对子类类型的子类和基类类型的子类都有效。除非从基类类型的基类中调用这个方法才还是基类中的样子,因为override是在子类中进行的.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值