【C#】重构、重载&重写

         来,我们一下自己:造函数是干什么的?重构是什么?重写是什么?重载是什么?重写和重载联系的是什么?重构与重载的区别是什么?重写和重构又是什么关系?它们分别怎么用?重构是重新构什么?重写又是在重写什么?重载载的又是什么?哈哈,撒了吧偷笑,我是把自己给问傻啦,原本觉得学的还是可以的,可是这么一问,全浆糊啦。下面我来梳理一下

一、基本要点

    构造函数:是一种特殊的方法。主要是用来在创建对象的时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们即构造函数的重载

    重构:重构我的理解是:它是一种修改,重构的结果是去除了重复代码和死代码,使设计和逻辑更加清晰。降低项目的耦合度,使项目更加模块化,有利于项目的开发效率和后期的维护。

    重写:当一个子类继承一个父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法重写了父类中的方法。

    重载:一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法。

二、PS:个人理解&代码实现举栗

    重构:就举个栗子:猫和狗类继承父类动物,但是它们都有叫这个方法,除了叫的声音不一样之外,其余都是一样的,这样就造成了代码的重复,如果要修改这个方法得同时修改这两个子类,非常的麻烦。这时候重构就起到了很重要的作用。它将重复的代码提到父类,再加一个获得叫的方法就可以啦

class Animal  
{  
    //将共有代码提到父类  
    protected override void shout()  
    {  
        return  getShoutSound();  
    }  
      
    //获得声音的方法  
    protected virtual string getShoutSound()  
    {  
        return "";  
    }  
}  
  
//类猫继承动物  
class Cat : Animal  
{  
    Protected override string getShoutSound()  
    {  
        return "喵"  
    }  
}  
//狗类继承动物  
class Dog:Animal  
{  
    Protected override string getShoutSound()  
    {  
        return "旺"  
    }  
}

    重载:当我看到一个人哇,我的天哪,穿的很性感很暴露,那么我的直觉或者说对这个人的第一印象就是奔放,开放、不保守。但是当跟她真正的交流接触之后,发现跟表面上我所认为的截然不同,她内心很保守,不跟男生开玩笑,打闹,她只是喜欢那样的穿衣风格而已。那么在我心里对这个人的印象就重载了。

重载的一般特征:方法名是相同的,但是参数类型或个数必须要有所不同。举个例子:像下面的关于对name的初始化就用到重载,如上面的构造函数Dog(),函数名相同,但是参数是不同的,一个由曹安淑,一个没参数,这就是方法重载

class Dog  
{  
    private string name;  
    public Dog()  
    {  
        name="黑贝";  
    }  
   
    public Dog(string name)  
    {  
        this.name=name;  
    }  
}  

    重写:重写我的理解就是我们要写论文,要用的都是同一个模板(方法),那么我们只需要在模板的基础上(继承这个模板)只重写里面的内容即可。举个例子:

 class Program  
    {    
        }  
        public class you  
        {  
            public virtual void talk()  
            {  
                Console.WriteLine("one");  
            }  
        }  
        public class my : you  
        {  
            public override void talk()  
            {  
                Console.WriteLine("two");  
            }  
        }  
    }  

三、小结:

    看到这里,大家对这三个的理解应该清晰了一些吧?上面所问道的问题应该也是有答案了。重构构的是类,重载在的是方法,重写写的也是方法。PS以上是我自己的理解,有什么误区请大家指正。O(∩_∩)O哈哈~


                                                                               


——越简单、越肆意 、越幸福

特别说明 -------- 新版本请访问网站www.bluefishes.net. 考虑到稳定性,新版本不支持Visual Studio.NET 2002. 产品名称 -------- SharpRefactor(C#代码重构工具) 产品简述 -------- 本工具用于代码重构和代码自动生成。现阶段主要用于C#代码重构。 所谓重构也就是“保持软件的外在功能不变,重新调整其内部结构”。 关于每种重构模式的含义,请参见http://www.refactoring.com/ 具体功能参见具体版本的特性列表。 对重构很感兴趣或是很关注使用效率的用户,希望[使用指南]一节对你有所助益。 版本 ---- 1.0.0(BETA). 发布日期 -------- 2003/6/13 作者 ---- C# Refactor Team. 制作 ---- Blue Workshop. 环境要求 -------- Visual Studio.Net 2003 Windows 2000 + SP2 + SMTP Service 特别提示 -------------- 本插件使用了异常处理和报告机制。 一般而言,环境、代码以及其他原因都会导致程序出错。因此,在您使用本插件的过程中,可能会弹出错误报告。一部分错误不会影响使用,另一部分会影响使用。 C# Refactor Team愿意随时提供技术支持,及时为你解除问题。 版本1.0.0特性 ------------- Rename Parameter Rename Local Variable Rename Field Rename Property Rename Class Rename NameSpace Safe Delete Parameter Safe Delete Local Variable Safe Delete Field Safe Delete Property Safe Delete Method Safe Delete Class Safe Delete NameSpace Extract Interface Undo/Redo Preview usage before refactor(重构前预览) Auto build after refactor(重构后自动生成) Options(工具选项) User feedback(用户反馈) 使用指南 -------- 所有功能暂不支持静态成员。 尽量使用鼠标右键菜单。 尽量使用快捷方式,比如:单击鼠标右键,弹出菜单后再连续按‘R’键和‘C’键就可以调用[Rename]菜单下的[Rename Class]命令。 在使用Rename系列命令时,需要先转到定义代码元素的地方。此时,可以先使用右键菜单中的[转到定义]命令。 在Option中可以设置首选项。 由于Visual Studio在生成较大的解决方案时有时会不成功,所以Auto build after refactor通常用于较小的解决方案。 Rename NameSpace与Move Class不同。Move Class的焦点在Class,即改变类所在的NameSpace。而Rename NameSpace的焦点在NameSpace,即改变指定NameSpace的名字,并更新该NameSpace的所有引用(Usages)。 错误报告以及建议功能需要网络连接和Windows自带的SMTP服务。因为发送速度很快,所以不会占用您宝贵的时间。 可以使用User feedback功能提出您睿智的建议、批评、任何意见。 技术支持 -------- Tiger.BlueWorkshop@163.net 下载 ---- www.csdn.net 版本 发布日期 ----------------------------- 1.0.0(Beta) 2003/6/13
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值