设为首页 加入收藏

TOP

abstract 是什么意思?
2014-11-23 23:19:54 来源: 作者: 【 】 浏览:4
Tags:abstract 什么 意思

abstract 修饰符可以用于类、方法、属性、事件和索引指示器(indexer),表示其为抽象成员


abstract 不可以和 static 、virtual 一起使用


声明为 abstract 成员可以不包括实现代码,但只要类中还有未实现的抽象成员(即抽象类),那么它的对象就不能被实例化,通常用于强制继承类必须实现某一成员


示例:


using System;


using System.Collections.Generic;


using System.Text;


namespace Example04


{


#region 基类,抽象类


public abstract class BaseClass


{


//抽象属性,同时具有get和set访问器表示继承类必须将该属性实现为可读写


public abstract String Attribute


{


get;


set;


}


//抽象方法,传入一个字符串参数无返回值


public abstract void Function(String value);


//抽象事件,类型为系统预定义的代理(delegate):EventHandler


public abstract event EventHandler Event;


//抽象索引指示器,只具有get访问器表示继承类必须将该索引指示器实现为只读


public abstract Char this[int Index]


{


get;


}


}


#endregion


#region 继承类


public class DeriveClass : BaseClass


{


private String attribute;


public override String Attribute


{


get


{


return attribute;


}


set


{


attribute = value;


}


}


public override void Function(String value)


{


attribute = value;


if (Event != null)


{


Event(this, new EventArgs());


}


}


public override event EventHandler Event;


public override Char this[int Index]


{


get


{


return attribute[Index];


}


}


}


#endregion


class Program


{


static void OnFunction(object sender, EventArgs e)


{


for (int i = 0; i < ((DeriveClass)sender).Attribute.Length; i++)


{


Console.WriteLine(((DeriveClass)sender)[i]);


}


}


static void Main(string[] args)


{


DeriveClass tmpObj = new DeriveClass();


tmpObj.Attribute = “1234567″;


Console.WriteLine(tmpObj.Attribute);


//将静态函数OnFunction与tmpObj对象的Event事件进行关联


tmpObj.Event += new EventHandler(OnFunction);


tmpObj.Function(“7654321″);


Console.ReadLine();


}


}


}


结果:


1234567


7


6


5


4


3


2


1


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇为什么要制定项目计划? 下一篇网易游戏研究员笔试题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: