前言
学习了一段时间的设计模式了,感觉其中有一些特别重要的基础知识,这些基本知识对具体设计模式的学习,有很大的帮助,它们渗透到了具体设计模式的学习中,所以呢,小编总结一下,希望能够有所帮助。
叙述
1、构造方法:又叫构造函数,其实就是对类进行初始化。构造方法与类同名,无返回值,也不需要void,在new时候调用。
注:所有的类都有构造方法,如果你不编码则系统默认生成空的构造方法,若你有定义的构造方法,那么默认的构造方法就会失效。
如下:
如下:
class Cat
{
private string name = ""; //声明Cat类的私有字符串变量name
public Cat(string name) //定义Cat类的构造方法,参数是输入一个字符串
{
this.name = name; //将参数赋值给私有变量name
}
}
2、方法重载:提供了创建同名的多个方法的能力,但这些方法需要使用不同的参数类型。
注:方法重载时,两个方法必须要方法名相同,但参数类型或个数必须要有所不同,否则重载就没有意义了。
方法重载可在不改变原方法的基础上,新增功能。
public Animal(string name) //定义Cat类的构造方法,参数是输入一个字符串
{
this.name = name; //将参数赋值给私有变量name
}
public Animal() //将构造方法重载
{
this.name = "无名";
}
3、虚方法
为了使子类的实例完全接替来自父类的类成员,父类必须将该成员声明为虚拟的。这是通过在该成员的返回类型之前添加
virtual关键字来实现。
class Animal
{
...
public virtual string Shout() //注意修饰符中增加了一个virtual,它表示是虚方法,可以被子类重写。
{
return"";
}
}
4、方法重写
子类可以选择使用override关键字,将父类实现替换为它自己的实现,这就是方法重写Override。
class Cat:Animal
{
public override string Shout() //增加了override,表示方法重写
{
return"";
}
}
5、抽象类&抽象方法
C#中允许把类和方法声明为abstract,即抽象类和抽象方法。
注:(1)抽象类不能实例化;(2)抽象方法是必须被子类重写的方法;(3)如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其他一般方法。
abstract class Animal //加abstract关键字,表明是抽象类
{
...
protected abstract string getShoutSound(); //在方法返回值前加abstract表明此方法是抽象方法,抽象方法没有方法体,直接在括号后加“;”
}
6、委托和事件
委托是对函数的封装,可以当作给方法的特征指定一个名称。而事件则是委托的一种特殊形式,当发生有意义的事情时,事件对象处理通知过程。
注:委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托对象用关键字delegate声明。而事件是在发生其他类或对象关注的事情时,类或对象可通过事件通知它们。事件对象用event关键字声明。
public delegate void CatShoutEventHandler();
public event CatShoutEventHandler CatShout;
小结
设计模式真的是一本好书,值得去细细的品味其中的知识。