C#中类的定义.doc_第1页
C#中类的定义.doc_第2页
C#中类的定义.doc_第3页
C#中类的定义.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C#中的类定义(1)C#使用class关键字来定义类:class MyClass/ Class members.这段代码定义了一个类MyClass。定义了一个类后,就可以在项目中能访问该定义的其他地方对该类进行实例化。在默认情况下,类声明为内部的,即只有当前项目中的代码才能访问它。可以用internal访问修饰符关键字显式指定,如下所示(但这是不必要的):internal class MyClass/ Class members.另外,还可以指定类是公共的,应可以由其他项目中的代码来访问。为此,要使用关键字public。public class MyClass/ Class members.注意:以这种方式声明的类不能是私有或受保护的。可以把这些声明类的修饰符用于声明类成员,详见第10章。除了这两个访问修饰符关键字外,还可以指定类是抽象的(不能实例化,只能继承,可以有抽象成员)或密封的(sealed,不能继承)。为此,可以使用两个互斥的关键字abstract 或sealed。所以,抽象类必须用下述方式声明:public abstract class MyClass/ Class members, may be abstract.其中MyClass是一个公共抽象类,也可以是内部抽象类。密封类的声明如下所示:public sealed class MyClass/ Class members.与抽象类一样,密封类也可以是公共或内部的。还可以在类定义中指定继承。为此,要在类名的后面加上一个冒号,其后是基类名,例如:public class MyClass : MyBase/ Class members.注意,在C#的类定义中,只能有一个基类,如果继承了一个抽象类,就必须实现所继承的所有抽象成员(除非派生类也是抽象的)。编译器不允许派生类的可访问性比其基类更高。也就是说,内部类可以继承于一个公共类,但公共类不能继承于一个内部类。因此,下述代码是合法的:public class MyBase/ Class ernal class MyClass : MyBase/ Class members.但下述代码不能编译:internal class MyBase/ Class members.public class MyClass : MyBase/ Class members.如果没有使用基类,则被定义的类就只继承于基类System.Object(它在C#中的别名是object)。毕竟,在继承层次结构中,所有类的根都是System.Object,稍后将详细介绍这个基类。除了以这种方式指定基类外,还可以在冒号的后面指定支持的接口。如果指定了基类,它必须紧跟在冒号的后面,之后才是指定的接口。如果没有指定基类,则接口就跟在冒号的后面。必须使用逗号分隔基类名(如果有基类)和接口名。例如,给MyClass添加一个接口,如下所示:public class MyClass : IMyInterface/ Class members.所有的接口成员都必须在支持该接口的类中实现,但如果不想使用给定的接口成员,就可以提供一个空的执行方式(没有函数代码)。还可以把接口成员实现为抽象类中的抽象成员。下面的声明是无效的,因为基类MyBase不是继承列表中的第一项:public class MyClass : IMyInterface, MyBase/ Class members.指定基类和接口的正确方式如下:public class MyClass : MyBase, IMyInterface/ Class members.可以指定多个接口,所以下面的代码是有效的:public class MyClass : MyBase, IMyInterface, IMySecondInterface/ Class members.32表9-1是类定义中可以使用的访问修饰符的组合。表 9-1修饰符含义无或internal类只能在当前项目中访问public类可以在任何地方访问abstract或internal abstract类只能在当前项目中访问,不能实例化,只能继承public abstract类可以在任何

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论