abstract 抽象类
c#关键字,其中第一个就是abstract,abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用 abstract 修饰符以指示类只能是其他类的基类。接下来描述了abstract的一些特性:不能实例化;可以包含抽象方法和抽象访问器;不能用 sealed 修饰符修改抽象类,意味着该类不能被继承;从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实现;在方法或属性声明中使用 abstract 修饰符以指示此方法或属性不包含实现等等。"abstract"可以修饰类、方法、属性、索引器及事件。
1namespace Const
2{
3 public abstract class baseclass
4 {
5
6 //只是说abstract的方法只能存在与abstract类中,但并不是说abstract类中只有abstract方法。
7
8
9 // //抽象属性,同时具有get和set访问器表示继承类必须将该属性实现为可读写
10 public abstract string Attribute
11 {
12 get;
13 set;
14 }
15
16
17 //抽象方法,传入一个字符串参数无返回值
18 public abstract void Function(string value);
19
20
21
22 //抽象事件,类型为系统预定义的代理(delegate):EventHandler
23 public abstract event EventHandler Event;
24
25
26
27 //抽象索引指示器,只具有get访问器表示继承类必须将该索引指示器实现为只读
28 public abstract Char this[int Index]
29 {
30 get;
31 }
32
33
34
35
36
37
38
39
40 }
41
42 public class DeriveClass : baseclass
43 {
44 private String attribute;
45
46 public override string Attribute
47 {
48 get
49 {
50 return attribute;
51 }
52 set
53 {
54 this.attribute = value;
55 }
56 }
57
58
59
60 public override void Function(string value)
61 {
62
63
64 attribute = value;
65 if (Event != null)
66 {
67 Event(this,new EventArgs());
68 }
69
70
71
72 }
73
74 public override event EventHandler Event;
75
76 public override char this[int Index]
77 {
78 get { return Attribute[Index]; }
79 }
80 }
81
82
83
84
85
86
87
88 class Program
89 {
90
91
92
93 static void Function(object sender, EventArgs e)
94 {
95 for (int i = 0; i < ((DeriveClass)sender).Attribute.Length; i++)
96 {
97
98
99 Console.WriteLine(((DeriveClass)sender)[i]);
100 }
101 }
102
103
104 static void OnFunction(object sender, EventArgs e)
105 {
106 for (int i = 0; i < ((DeriveClass)sender).Attribute.Length; i++)
107 {
108 Console.WriteLine(((DeriveClass)sender)[i]);
109 }
110 }
111
112
113
114
115
116
117 static void Main(string[] args)
118 {
119
120
121 DeriveClass tmpObj = new DeriveClass();
122
123 tmpObj.Attribute = "ABCD";
124
125 Console.WriteLine(tmpObj.Attribute);
126
127 //将静态函数OnFunction与tmpObj对象的Event事件进行关联
128 tmpObj.Event += new EventHandler(Function);
129
130 tmpObj.Function("DEFG");
131
132 Console.ReadLine();
133
134
135
136
137
138
139 }
140
141
142
143
144
145 }
146
147
148
149}
转载于:https://www.cnblogs.com/liuyong/archive/2009/06/07/1498332.html
abstract 抽象类相关推荐
- 继承extends ,this super final 关键字,abstract抽象类,override方法重写
继承extends 私有成员不能被继承 总结:子类方法中,使用变量的原则是:就近原则 1 package review06; 2 /* 3 私有成员不能被继承 4 子类和父类有同名的成员变量:在子类 ...
- JAVA入门级教学之(abstract抽象类)
目录 JAVA入门级教学之(abstract抽象类) 1.如何定义抽象类? 2.抽象类无法被实例化 3.虽然抽象类没有办法实例化,但是抽象类也有构造方法,该构造方法是给子类创建对象用的 4.抽象类中可 ...
- 小白Java学习之路(abstract抽象类,final,接口,equals)
常见面试题 final修饰静态常量进过方法 final 修饰的基本数据类型变量是无法进行修改的 final 修饰的引用类型的变量 只保证地址不变 对象中的内容可以发生改变 public class T ...
- abstract(抽象类)与interface(接口)的区别
文章目录 前言 一.abstract(抽象类) 1.用abstract关键字修饰方法 1.用abstract关键字修饰类 二.interface(接口) 总结 前言 abstract(抽象类)与int ...
- java抽象类关键字_Java之关键字abstract(抽象类与抽象方法)
/* * abstract关键字的使用 * 1.abstract:抽象的 * 2.abstract可以用来修饰的结构:类.方法 * * 3. abstract修饰类:抽象类 * > 此类不能实例 ...
- extends 抽象方法_关于abstract抽象类的理解
abstract: 抽象类不能被实例化(new),包含属性.方法.构造器(此构造器不用来初始化实例,只用来被子类调用,其构造函数是提供给子类创建对象的时候初始化父类的属性的),故只能被继承.抽象中用的 ...
- c# abstract抽象类与继承类子类的构造函数_base
http://blog.itpub.net/9240380/viewspace-718054/ http://blog.163.com/cloud_thegreat/blog/static/10367 ...
- 【JavaSE】abstract 抽象类 快到碗里来 (◕ᴗ◕✿)
啥是抽象类?抽象类是用来干嘛的? 上层简单总结 所谓抽象类,就是把一些事物的共性总结起来,封装在一个抽象类当中从而形成一个模板,供子类进行继承并实现.子类总体上会保留抽象类的行为方式,并且在父类的基础 ...
- 1-10 Java 继承、protected和abstract抽象类
文章目录 1.继承 1)概念 2)代码例子 2.重写 1) 业务背景 2)代码实现 3)代码说明 3.抽象类,抽象方法 1)业务场景 2)abstract,抽象的 4.protected 修饰符 1. ...
- 44从零开始学Java之详解容易让初学者懵圈的abstract抽象类、抽象方法
作者:孙玉昌,昵称[一一哥],另外[壹壹哥]也是我哦 千锋教育高级教研员.CSDN博客专家.万粉博主.阿里云专家博主.掘金优质作者 前言 经过前面几篇文章的讲解,我们现在已经对面向对象有了基本的认知, ...
最新文章
- 傻瓜式动画制作软件_一个傻瓜版的动画制作软件——万彩动画大师
- 魔幻!2021年,6种将死的编程语言?
- SQLite中的高级SQL
- glClearDepth
- 【剑指offer】面试题29:顺时针打印矩阵(Java)
- 知乎万赞:人并不是活一辈子,而是活几个瞬间
- linux查看redis内存,Linux查看redis占用内存的方法
- Laravel中的env函数获取不到确定存在的配置
- 【华为云技术分享】前端快速建⽴Mock App
- matlab 高级函数 —— circshift、squeeze
- 【转】Caffe初试(八)Blob,Layer和Net以及对应配置文件的编写
- 数据包络分析例题解析(含MATLAB代码)
- java 俄罗斯方块原理,俄罗斯方块设计原理
- 说明书丨Epigentek EpiNext 高灵敏免疫共沉淀测序试剂盒
- AlarmClock
- 袋鼠云数据中台专栏(五):数栈,企业级一站式数据中台PaaS
- 三校生计算机教学计划,第十二
- 苹果手机投影_手机连接投影机的步骤
- macbook pro m1 在 EXCEL 中安装 Excel2Latex
- 【大数据入门核心技术-Tez】(一)Tez介绍
热门文章
- 如何调试神经网络参数
- ValueError: Object arrays cannot be loaded when allow_pickle=False 报错解决
- .sql文件导入mysql数据库中
- 感知器分类模型回顾与python实现
- python解决sip与ptqt不兼容导致页面截图引擎无法运行问题
- android mmkv使用_锦囊篇|一文摸懂SharedPreferences和MMKV(一)
- php 抓取 wordpress 文字内容,WordPress获取页面、文章内容代码
- truffle部署到测试网rinkeby
- 区块链 自私挖矿(selfish mining)是什么
- 合肥师范学院计算机操作系统期末考试题,2005级操作系统期末试卷A卷及答案