C#中的继承和多态

  • 继承的作用:
  1. 继承可以减少代码的冗余,提高代码的复用性。
  2. 是面向对象编程的组成部分,是所有面向对象的语言都要具备的特性。
  • 继承的实现:
  1. 先将几个类中相同的属性和方法进行抽离,单独定义在一个新建的类中。
  2. 其他的类直接继承当前新建的类,语法是SE:Employee,冒号(:)表示继承关系,冒号前是子类,冒号之后的是父类
  3. 子类可以直接使用父类中的属性和方法。
  4. 可以使用base关键字直接访问父类的属性和方法(成员变量)
  • C#的访问限制符(访问修饰符)

Public

Protected

private

公共的

受保护的

私有的

可以在当前项目的任何地方使用

只能在当前类和当前类的子类(派生类)中使用

只能在当前的类使用

  • Base关键字的使用:

一般用于子类的构造函数中:

1.如果子类编写构造函数没有使用base,则默认调用的是父类的隐含的不带参数的构造方法。

2.如果子类中使用了base,则是要显示的调用父类中相对应的构造函数,因为构造函数可以重载。

3.在调用过程中,要保证父类中拥有此参数列表的构造函数,并且参数的名称要保持一致,参数不需要带数据类型。

  • 继承的特性:

传递性

单根性

一个子类可以继续被其他类继承,父类中的成员可以被所有的派生类使用

一个类只能有一个父类

  • Is  a的使用

一般用于循环遍历中,判断某个父类是否能转换为某个子类对象。语法:父类在前,子类在后,比如:item  is  PM;

  • 虚方法:

1.虚方法的作用是完成C#中方法的重写操作。

2.虚方法的语法:在普通方法的访问修饰符之后加virtual

3.虚方法一般是用于被子类所重写,如果子类没有重写当前的虚方法,那么调用时候是当前父类的虚方法,否则是调用子类重写之后的方法(子类的方法优先被调用————子类优先原则)

4.在集合中遍历操作时,不需要在做if判断,直接使用重写之后的方法即可,多态的特性会自动识别要调用的是哪一个子类中的方法。

  • 方法的重写:

1.方法的重写是面向对象编程中多态的重要体现

2.重写的关键字是override,注意:子类中重写父类的方法只能是虚方法和抽象方法

3.调用的原则:子类优先

 

 

 

  • 比较方法重载和方法重写的区别:

重载overload

重写(覆盖)override

发生在一个类中

发生在继承关系的子类中

方法名称相同,参数列表不同(类型,个数,顺序)

子类和父类的方法名称相同,参数也相同,方法体不一样

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kevin_feng老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值