C#之重载、重构、重写

11 篇文章 0 订阅

【重载】

       提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型。

       特点:方法名必须相同,但参数类型或个数必须不同

       优点:在不改变原来方法的基础上,新增功能

       代码:

    class Cat
    {
        private string name = "";
        public Cat(string name)
        {
            this.name = name;
        }
        public Cat()
        {
            this.name = "无名";
        }
    }

以上简短几行代码就实现了方法的重载

【重构】

       调整程序代码,使其更符合面向对象规则,提高软件的扩展性和维护性。前提是不改变程序原有的功能

       特点:对代码的优化

       代码:比如现在我有两个类,一个是Cat,另一个是Dog,他们都有叫方法,如果我每个类都去写实现叫方法,就造成了代码的重复,怎么办那,可以把叫方法抽象出来,放到一个父类Animal中,让子类Cat、Dog去继承

class Animal
    {
        public virtual void GetShoutSound()
        { }
    }
    class Cat:Animal
    {
        public override void  GetShoutSound()
        {
            Console.WriteLine("猫的叫声为:喵");
        }
    }
    class Dog : Animal
    {
        public override void GetShoutSound()
        {
            Console.WriteLine("狗的叫声为:");
        }
    }

【重写】

       多出现在多态里,父类里写一个virtual方法或abstract方法,子类通过override重写去实现父类的方法

       上面重构就体现了重写

【总结】

       在验收时师父问重载、重构、重写的区别,当时就蒙了,但下来一查,原来这就是重载,重构,重写呀,由此总结,对比学习真的很重要,还有一点更为重要,我们在学一知识点后,要能自己口述出来,能讲给别人听,能讲出来,起码概念就得明确,即中心明确,别学完之后不知道自己学的是什么,讲出来才是自己真正吸收的,在以后的学习中要加强这方面的锻炼。


  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值