abstract是什么意思


Posted in 面试题 onFebruary 12, 2012
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 {
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

Tags in this post...

面试题 相关文章推荐
PHP开发的一般流程
Aug 13 面试题
xml有哪些解析技术?区别是什么
Apr 26 面试题
编写类String的构造函数、析构函数和赋值函数
May 29 面试题
如何提高SQL Server的安全性
Jul 25 面试题
DataReader和DataSet的异同
Dec 31 面试题
软件测试工程师结构化面试题库
Nov 23 面试题
一份软件工程师的面试试题
Feb 01 面试题
Python是如何进行类型转换的
Jun 09 面试题
Python面试题:Python里面如何生成随机数
Mar 12 面试题
中软国际Java程序员机试题
Aug 19 面试题
Shell脚本如何向终端输出信息
Apr 25 面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
Jan 26 面试题
C#基础面试题
Oct 17 #面试题
C#怎么让一个窗口居中显示?
Oct 20 #面试题
internal修饰符起什么作用
Dec 16 #面试题
C#软件工程师英语面试题
Jun 07 #面试题
C#如何进行LDAP用户校验
Nov 21 #面试题
sealed修饰符是干什么的
Oct 23 #面试题
维德科技C#面试题笔试题
Dec 09 #面试题
You might like
PHP的ASP防火墙
2006/10/09 PHP
PHP根据IP判断地区名信息的示例代码
2014/03/03 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
PHP面向对象程序设计OOP继承用法入门示例
2016/12/27 PHP
extJs 下拉框联动实现代码
2010/04/09 Javascript
div+css布局的图片连续滚动js实现代码
2010/05/04 Javascript
如何使用jquery动态加载js,css文件实现代码
2013/04/03 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
顶部缓冲下拉菜单导航特效的JS代码
2013/08/27 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
浅谈vue路径优化之resolve
2017/10/13 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
2018/12/06 jQuery
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
Python中类的创建和实例化操作示例
2019/02/27 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
django修改models重建数据库的操作
2020/03/31 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
就业自我评价
2014/02/04 职场文书
《手指教学》反思
2014/02/14 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
解除租房协议书
2014/12/03 职场文书
法律进社区活动总结
2015/05/07 职场文书
课题研究阶段性总结
2015/08/13 职场文书
小学语文教学随笔
2015/08/14 职场文书