【C#】002 方法和接口


一、方法和接口

重载 override

C#中允许方法名重复(方法重载),要求方法参数要么个数不同,要么类型不同

        //三个方法名字都叫Learn 方法1、2参数个数相同但是类型不同 方法1、3参数类型相同但是个数不同
        public void Learn(string subject, int time)
        {
            Console.WriteLine("学习{0}科目, 学习时长:{1}", subject, time);
        }
        public void Learn(string subject1, string subject2)
        {
            Console.WriteLine("学习{0}科目, 学习{1}科目", subject1, subject2);
        }
        public void Learn(string subject, int time, float ratio)
        {
            Console.WriteLine("学习{0}科目, 学习时长:{1}, 学习效率:{2}", subject, time, ratio);
        }


重构 override


虚方法 virtual

virtual虚方法

  • 加关键字 virtual 这样就将该方法标记为虚方法 virtual public void Speak(){}
  • 这个方法其实就是为了重写方法而存在的 public override void Speak(){}
  • 基类虚方法可以在派生类用override重写
  • 【什么时候使用】实现这个功能(输出)要写在父类中,在不同的子类中需要重写
  • 【作用】动物会叫,默认有一个叫声,但是猫狗叫声不一,重写实现多态
  • 不能是private和static

基类引用和派生类引用

在这里插入图片描述

Pet基类、Dog派生类
# pet.Speak() 基类引用 如果派生类没有override,直接使用虚方法
# pet.Speak() 基类引用 如果派生类有override,直接使用重写方法
# dog.Speak() 派生类引用 直接使用重写的方法

拓展方法和静态类 Extension Methods

  • 该参数以 this 修饰符为前缀
  • C#扩展方法第一个参数指定该方法作用于哪个类型
  • 必须是静态类才可以添加拓展方法,静态类中要定义静态方法

1.首先我们要准备一个 普通类

    public class Student
    {
   
        public string StuInfo()
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值