结构和类的区别

本文转自:http://blog.csdn.net/lianchangshuai/article/details/5810249.net

一、结构用于小的数据类型,全部结构派生自System.ValueType类,不能再继承其它基类,同时也不能被继承。blog

而类通常用于大的数据类型如人类,动物类等,支持继承。继承

二、结构和类同样能够有成员方法,字段。
三、结构中的成员字段不能被显式初始化,要经过默认无参构造器初始化,而类的字段能够显示初始化,默认由无参构造器初始化。接口

四、结构的无参构造器老是存在,不管是否手动添加了其它构造器,而类只要手工添加任一个构造器,就不会再有默认的无参构造器,固然能够自行添加,用于成员字段的初始化。string

五、结构能够采用两种方式声明(和枚举enum相同):
     第一种不使用new,和声明通常数据类型如int、string同样,假设有一个结构MyStruct,建立一个实例以下:编译

     MyStruct struct1;
     第二种采用和实例化类同样的方式如MyStructnn=new MyStruct()。class

六、 结构不能显式的包含无参构造器,也便是说不能手工添加一个无参构造器,而类在没有任何构造器的状况下会自动生成一个无参构造器,一样也能够手工添加一个无参构造器。权限

七、 结构不支持继承,任何其它结构或类不能由结构派生,而类则能够。数据类型

八、结构支持接口继承,不支持实现继承,就是说结构能够继承自某一个接口,但不能继承自某一个类或结构。方法

 九、class与struct内部的成员的访问权限默认都是private私有的,这与C++不一样,C++中class内部成员的默认访问权限是private私有的,而struct内部的成员访问权限默认是public公有的。

十、若是仅是调用struct内部的公有成员字段,则不使用New的方式建立实例就好了如MyStruct struct1;

而若是要调用struct内部的公有方法则必须使用New来建立struct实例,不然会出现编译错误。

相关文章
相关标签/搜索