一、接口可以定义方法,属性、索引器、事件,并且自动默认public,不能加修饰符,当一个类实现某个接口时,其必须实现该接口定义的对象,还要实现该接口继承的接口的对象。
二、如果一个类实现了多个接口,那么就可以将该类的实例重一个接口类型转换为另外一个接口类型,湖而建定义的总是虚方法,一个值类型转型为接口时,发生装箱操作。
三、IS-A,是否继承关系:用基类;CAN-DO,能做:用接口;控件用的是继承,而集合(Collections)用的是接口,接口是一组行为的“集合”,约定大家都有这些行为。
四、如果在基类中,添加新对象,派生类不用任何改变;如果是接口,则凡是继承了接口的类都必须修改代码来实现,接口中新添加的对象。
五、在需要接口、类继承等时,尽量用MSCorLib.dll中的。Clr总是自动加载和clr自身版本匹配的那个MSCorlib.dll,而且一个进程中只能加载一个版本的MSCorLib.dll。
六、如果我们写一个程序集时,尽可能的少和其他程序集的特定版本捆绑在一起,进可能使用MSCorlib.dll,否则会导致一个程序集的好几个版本被同一个应用程序域加载,并且程序集之间
的通信困难。
七、一个类实现了多个接口,而这些接口中有同名的对象就需要显示实现接口,在显示实现接口时,他们默认是私有的方法(对象),在调用这些方法时,必须先对其进行转换为相应的接口
,然后再调研该接口的方法,否则,对象根本无法区别你调用的是那个接口的方法。Object obj=((I接口)对象).方法;的方式实现。
八、尽量少用显示接口。