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

本文深入探讨了继承和多态的概念及其在编程中的重要性,详细介绍了抽象类、接口、基类和派生类之间的关系,以及如何通过接口实现统一化的编程方式。此外,还讲解了派生类如何隐藏基类成员,并通过new和override关键字实现多态性的不同应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

继承 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是在子类中进行的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值