标签:style color 使用 strong os 文件
子类都要对他进行重写
什么是抽象方法呢?
抽象类必须加abstract关键字, 抽象方法必须没有实现,,sonLoad();在子类必须重写。而虚方法可以被重写,
虚方法和抽象方法的区别:1.虚方法必须有实现,抽象方法必须没有实现
2.抽象方法必须在抽象类中声明,虚方法可以出现在抽象类中
3.抽象方法必须在子类中重写,虚方法可以被重写
实现多态的主要手段:
1.虚方法virtual
2.抽象方法abstract
3.接口。
关于虚方法需要注意的几点:
1.父类中如果有方法需要让子类重写,则可以将该方法标记为virtual
2.虚方法在父类中必须有实现,哪怕是空实现。
3.虚方法子类可以重写(override),也可以不重写。
静态成员、静态类在程序中的任何一个地方都可以访问。
不会因为超出了方法的作用域而不能访问。
所以静态成员、静态类只有在程序退出的时候才会释放资源。
静态构造函数必须用static关键字标记
静态构造函数不能有访问修饰符
静态构造函数不能有参数。
静态构造函数只会被调用一次。在第一次使用静态类前。
静态类不能被实例化,就不会有对象,而this表示的是当前对象。所以在静态类不能使用this.
static StaticClass()
{
}
多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
类型:
值类型:
int、char、double、float、long、short、byte、bool、enum、struct、decimal
值类型都是派生自ValueType
值类型不能继承,只能实现接口。
引用类型:
string、数组、类(子定义数据类型)、接口、委托、
int[] n={1,2,3};//引用类型。
引用类型都派生自:Object
引用类型可以继承(类之间可以继承)
枚举
一组和数值有关的常量
enum Gender { Male,Female}
enum Weeks { 星期日=0,星期一,}
把字符串转换成枚举Gender g = (Gender)Enum.Parse(typeof(Gender), "Male");
结构
就是小类,值类型
不能继承类
可以实现接口
不能有显示无参构造函数(隐式)
结构中不能给字段赋初始值
值类型:拷贝文件
引用类型:文件的快捷方式。
接口:
接口定义一种能力,子类继承抽象类,实现接口,接口中的成员必须不能有实现,接口中的成员不能有访问修饰符,隐式公开,接口中可以有属性、方法、索引器等,但不能有字段,接口中的所有程序必须被子类中全部实现
一个类只能有一个父类,一个类可以实现多个接口。接口只能决定能干什么,怎么干由类来实现
特点总结:
1.接口是一种规范。为了多态。
2.接口不能被实例化。
3.接口中的成员不能加“访问修饰符”,接口中的成员访问修饰符为public,不能修改。(默认为public)
4.接口中的成员不能有任何实现(“光说不做”,只是定义了一组未实现的成员)。
5.接口中只能有方法、属性、索引器、事件,不能有“字段”。
6.接口与接口之间可以继承,并且可以多继承。
7.实现接口的子类必须实现该接口的全部成员。
8.一个类可以同时继承一个类并实现多个接口,如果一个子类同时继承了父类A,并实现了接口IA,那么语法上A必须写在IA的前面。class MyClass:A,IA{},因为类是单继承的。
9.当一个抽象类实现接口的时候,如果不想把接口中的成员实现,可以把该成员实现为abstract。(抽象类也能实现接口,用abstrac标记)
10.“显示实现接口”,只能通过接口变量来调用(因为显示实现接口后成员为private)。
抽象类和接口的区别
接口定义类的公共行为,抽象类定义类的公共实现
一个类只能继承自一个类(抽象类),但是可以同时实现多个接口
接口中不能有实现,抽象类中可以有未实现成员也可以有实现的成员
接口中未实现的方法必须在子类中实现,抽象类中未实现的成员必须在子类中重写
好的接口定义应该是具有专一功能性的,而不是多功能的,否则造成接口污染。如果一个类只是实现了这个接口的中一个功能,而不得不去实现接口中的其他方法,就叫接口污染。
什么情况下会发生隐式类型转换?
1.把子类类型赋值给父类类型的时候会发生隐式类型转换。
2.将占用字节数小的数据类型赋值给占用字节数大的数据类型可以发生隐式类型转换(前提是这两种数据类型在内存的同一个区域。)
常用类库StringBuilder:
•当大量进行字符串操作的时候,比如,很多次的字符串的拼接操作。
•String 对象是不可变的。 每次使用 System. String 类中的一个方法时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。 在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常大。 如果要修改字符串而不创建新的对象,则可以使用 System.Text. StringBuilder 类。 例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。
用法:
•StringBuilder sb = new StringBuilder();•sb.Append();//追加字符串•sb.ToString();//把StringBuilder转换为字符串。•sb.Insert();sb.Replace();
关于。Net的垃圾回收:
关于拆箱跟装箱:
标签:style color 使用 strong os 文件
原文地址:http://www.cnblogs.com/duyao/p/3857266.html