虽然工作快4年了,也做了不少.Net方面的项目,虽然也感觉到自己在进步,但是这种进步却是很缓慢,有时候连我自己都不敢相信,这3年多的时候,我学到了什么,想想自己的无知,心里不知有些惭愧,总结原因就是:没有学好基础知识,甚至连一些最基础的知识都不知道,只是埋头做项目,一直按自己的那种思维做项目,没有很好去学习其他的知识,更没有好好坐下来心平气和的研究如何更好的完成项目,至少从现在这一刻开始,我已经认识到自己的不足。我更需要脚踏实地的学习、工作。
override、virtual、interface、internal 、base 和abstract的概论一直都不太了解确切的用法。今天在这里做一下总结,希望接下来的学习能够脚踏实地、循序渐进。
virtual:若一个实例方法的声明中含有 virtual
修饰符,则称该方法为虚拟方法。若其中没有 virtual
修饰符,则称该方法为非虚拟方法。非虚拟方法的实现是不会变的:无论是在声明它的类的实例上调用该方法还是在派生类的实例上调用,实现都是相同的。与此相反,一个虚拟方法的实现可以由派生类取代。取代所继承的虚拟方法的实现的过程称为重写该方法。
public class Person
{
protected string strFirstName="Jack";
protected string strLastName="Jone";
public virtual void GetInfo()
{
Console.WriteLine(strFirstName+strLastName);
}
}
public class Employee:Person
{
public override void GetInfo()
{
Console.WriteLine("Name is:");
base.GetInfo ();
}
}
在页面中调用如下:Employee e=new Employee(); e.GetInfo();。
输出结果:Name is :
JackJone
执行Employee类时,因为Employee类中有override (即重写基类中GetInfo方法)。
override:使用override修饰符来修改方法、属性、索引器或事件。
需要注意的是:不能重写非虚方法或静态方法。重写基方法必须是虚拟的、抽象的或重写的。
interface:一个接口定义一个协定。实现接口的类或结构必须遵守其协定。一个接口可从一个或多个基接口继承。
internal:关键字是类型和类型成员的访问修饰符。内部成员只有在同一程序集中的文件内才是可访问的。