C#中的构造函数: 每次创建类或结构,将会调用其构造函数。类或结构中可以创建多个不个不同参数的构造函数,程序员可以对不同构造函数设置默认值,约束条件,并编写灵活易读的代码。
构造函数的特点: a:构造函数与类名相同
b:构造函数没有返回值
c:可以带参数,也可以不带参数
d:每个类中必须要有都应一个构造函数,一般假如不需要经常用到的话可以不需要声明构造函数,因为程序在编译的时候会自己调用无参的构造函数。
类成员有多少种访问方式:a:实例成员,可以通过类的实例访问
b:静态成员可以直接通过类访问
简单描述 string str=null;string str="",请尽量用文字说明区别(要点:说明详细的内存空间分配)前者声明变量不会分配内存空间;后者创建了一个空的字符类型,并且分配了对应的内存空间
String str=new String("加油");创建了几个string object?
创建了两个,一个对象是加油 一个是指向"加油"的str
String 类是否可以被继承:不能,因为String类是selead类
简单描述.NET里class和struct(结构)异同: 类和结构有很多相似之处:结构可以实现接口,并且具有于类相同的成员类型不同:结构是值类型而非引用类型,结构不能继承,结构存储在堆栈或者内联上。
值类型:整数,浮点数,高精度浮点数,布尔,字符,结构,枚举
引用类型:对象(Object),字符串,类,接口,委托,数组
sealed(又称密封类)修饰的类有哪些特点: sealed修饰的类防止此类被派生出其他的类,如果密封类被指定为其它的基类则编译出错(密封类同时不能为抽象类)
C#.NET里面抽象类和接口有什么区别?
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
接 口:
(1) 接口不能被实例化 (2) 接口只能包含方法声明 (3) 接口的成员包括方法、属性、索引器、事件 (4) 接口中不能包含常量、字段(域)、构造函数、析构函数、静态成员。
(5) 接口中的所有成员默认为public,因此接口中不能有private修饰符 (6) 派生类必须实现接口的所有成员 (7) 一个类可以直接实现多个接口,接口之间用逗号隔开 (8) 一个接口可以有多个父接口,实现该接口的类必须实现所有父接口中的所有成员
抽象类和接口 : 相同点和不同点()
相同点: 1. 都不能被直接实例化,都可以通过继承实现其抽象方法。
2. 都是面向抽象编程的技术基础,实现了诸多的设计模式。
不同点:1. 接口支持多继承;抽象类不能实现多继承。
2. 接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。
3. 接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。
4. 接口可以用于支持回调;抽象类不能实现回调,因为继承不支持。