1.C#只允许类进行单继承,不可以进行多重继承;Object类是所有类的基类;C#里的接口可以继承多个接口。
2.继承类在执行构造函数的时候,将自动执行基类的构造函数。
3.在创建子类对象的时候,编译器首先对基类进行实例化,并且如果没有显示规定基类调用的构造函数时,会自动调用基类无参数的构造函数。
4.调用基类得哪个构造函数,是通过定义base的时候其后所跟的参数的类型及个数决定的。
5.如果在定义一个类后,不希望它被任何其它类继承,那么,就可以使用sealed关键字对类执行密封操作,这样其他的类就无法对该类进行继承。
6.多态性是指类能提供具有功能不同但名称相同的方法的能力,允许对类的某个方法进行调用而无须考虑该方法所提供的特定实现。
基类引用能够指向继承类的对象,并实现对继承类对象的操作,A a = new B();则可以进行调用a.MethodA();不能进行调用a.MethodB();
也就是说,虽然在开始的时候创建的是继承类B的对象,但是由于使用基类A的引用指向该对象,所以在使用的时候只能将其作为基类A的对象使用,即无法对继承类B中的成员变量和方法进行访问以及调用。
7.方法重写-----virtual和override
8.在C#中可以使用new关键字指出某个方法是否重写的方法,即子类可以指定不重写基类的某个virtual类型的方法。
9.is和as关键字
is关键字可以对对象的类型和给定的类型进行比较,如果可以进行类型转换则返回true,否则返回false。
as关键字在无法进行类型转换的时候将返回空值(null),而在可以进行类型转换的时候将直接返回转换后的对象。
10.装箱(boxing)与拆箱(un-boxing)是使数值类型(如整数)能够被当成对象引用的处理过程。数值类型被“装箱”到一个Object对象里,然后可以通过“拆箱”返回一个数值类型。即装箱就是值类型转换为引用类型,拆箱就是引用类型转换为值类型。
值类型:简单类型(数字类型,字符类型,布尔类型)、枚举类型和结构类型
引用类型:类、数组、接口、委托