来,我们问一下自己:构造函数是干什么的?重构是什么?重写是什么?重载是什么?重写和重载联系的是什么?重构与重载的区别是什么?重写和重构又是什么关系?它们分别怎么用?重构是重新构什么?重写又是在重写什么?重载载的又是什么?哈哈,撒了吧,我是把自己给问傻啦,原本觉得学的还是可以的,可是这么一问,全浆糊啦。下面我来梳理一下
一、基本要点
构造函数:是一种特殊的方法。主要是用来在创建对象的时初始化对象,即为对象成员变量赋初始值,总与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哈哈~
——越简单、越肆意 、越幸福