码迷,mamicode.com
首页 > Windows程序 > 详细

C#中的类1:定义(有点乱)

时间:2015-06-13 18:45:42      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:类定义

类的定义

class类名

{

类体

}


类的访问级别

C++中的类没有所谓访问级别的问题,只需要导入定义类的头文件,就可以使用这个类。而在C#Java中,并不是所有的类都可以被任意使用。

Java中,程序以包(package)的方式来组织,包的结构类似于文件夹。如果想使用另一个包里定义的类,除了要先导入这个包之外,想使用的这个类还必须是公有类(以public关键字定义的类)。如果在定义类的时候没有使用关键字public来修饰,则这个类只能在定义它的包里被使用。


C#中,系统按照“解决方法”、“项目”和“源文件”的的组织。“解决方案”的级别最高,一个“解决方案”可以包含若干个“项目”。然后,从文件的层次来讲,一个“项目”中可以包含若干个C#源文件,一个C#源文件中可以包含若干个命名空间、类、接口、枚举等。从程序元素的层次来看,一个项目中可以包含命名空间、类、接口等。

Java类似,C#中的类按照访问级别被分为内部类(这里讲的“内部”是指访问级别,不是指在类中定义的类)和公有类。内部类只能在本项目被使用,如果想让某个类能被其他项目中的类访问,则必须将其定义为公有类。

公有类public关键字修饰;

内部类可以用关键字internal修饰,但一般不采用这种方式,因为C#中规定,没有加关键字public的类就是内部类。


普通类、抽象类和密封类

如果在定义类时使用了关键字abstract,那么这个类就是抽象类。抽象类本身不能被实例化,

只能被继承。

如果在定义类时使用了关键字sealed,那么这个类就是所谓的“密封类”,和抽象类刚好相反,密封类不能被继承(类似于Java中的final类)。

如果在定义类是没有使用关键字abstractsealed,那么这个类就是一个普通的类。

注意:关键字abstractsealed是互斥的。

以上的三种类都可以是public的或internal的。


继承父类与实现接口的格式

class类名 : 父类,接口1,接口2,...

{}

Java类似,C#中只能直接继承一个父类,但可以实现多个接口。在不同于Java中的继承父类用关键字extends,实现接口用关键字implementsC#中采用了类似C++中的方式,即:使用冒号。

在书写格式上,冒号后面的列表中必须是父类在前,接口在后。

不同于C++,在冒号后面的列表中不能使用访问级别修饰符。

要注意的是,C#规定,子类的访问级别不能高于基类。


如果基类是抽象类,那么派生类必须要实现基类中的所有抽象方法,否则,派生类也必须是抽象类。

当然,子类也必须实现其实现的接口的所有方法。


接口的定义

使用关键字interface定义接口,而且规定接口名必须以大写的英文字母I开头。

接口也可以是internal的或public的。但不能对接口使用关键字abstractsealed

接口可以有父接口



C#中的类1:定义(有点乱)

标签:类定义

原文地址:http://3677403.blog.51cto.com/3667403/1661558

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!