一、抽象类
名义:抽象类代表一个抽象概念,它提供一个继承的出发点,当设计一个新的抽象类时,一定是用来继承的,所以,在一个以继承关系形成的等级结构里面,树叶节点应当是具体类,而树枝节点均应当是抽象类。
注意:1、抽象类不能实例化;2、抽象方法必须被子类重写的方法;3、如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其它一般方法。
使用:C#中把类和文明声明为abstract,即抽象类与抽象方法
理解:抽象类就是在继承的应用之上,将父类设为一个抽象的内容。像上一篇讲多态时,讲的动物一样,这是一个抽象的概念,他并不是一个具体的对象。
二、接口
名义:接口是把隐式公共方法和属性组合起来,以封闭特定功能的一个集合。一旦类实现了接口,类就可以支持接口所指定的所有属性和成员。声明接口在语法上与声明抽象类完全相同。
注意:1、实现接口的类必须要实现接口中的所有方法和属性;2、一个类可以支持多个接口,多个类也可以支持相同的接口;
命名规范:定义接口时,前面要加一个大写的字母‘I’。
使用:接口用interface声明,接口中的方法或属性前面不能有修饰符、方法没有方法体;如果行为跨越不同类的对象,可使用接口,对于一些相似的类对象,用继承抽象类。
区分:1、类是对对象的抽象,抽象类是对类的抽象,接口是对行为的抽象;2、抽象类可以给出一些成员的实现,接口却不包含成员的实现,抽象类的抽象成员可被子类部分实现,接口的成员需要实现类完全实现,一个类只能继承一个抽象类,但可实现多个接口。
理解:接口是是个复杂的概念,我的认知里,接口好象就是一种规范,在类可能还没写时,接口就可以写好,他只是对类实现的一些内容进行一个定义说明,并不去实现任何操作,像我设置一个喊叫的接口,猫和狗都可以继承它,设置这个接口有个属性就是嘴,这样表明嘴和喊叫是一个同时存在的内容,不可以单独去使用其中一个内容。
三、泛型
定义:泛型是具有占位符(类型参数)的类、结构、接口和方法,这些占位符是类、结构、接口和方法所存储或使用的一个或多个类型的占位符,泛型集合类可以将类型参数用作它所存储的对象的类型的占有位符;类型参数作为其字段的类型和其方法的参数类型出现。
优点:1、不需要从基集合类型派生并实现类型特定的成员;2如果集合元素为值类型,泛型集合类型的性能通常优于对应的非泛型集合类型,因为使用泛型不必对元素进行装箱;
使用:通过List<T>来声明,其中T代码指定集合的数据或对象类型,命名空间为 System.Collections.Generic。
理解:泛型对集合性的数据处理上更加优化与简便,对代码的重用性也有很好的帮助。
四、委托与事件
名义:委托是对函数的封闭,可以当作给方法的特征指定一个名称。面事件则是委托的一种特殊形式,当发生有意义的事情时,事件对象处理通知过程。
注意:委托是一种引用方法的类型,一旦为委托分配了方法,委托将与该方法具有完全相同的行为。
使用:通过delegate来声明委托,通过event来声明事件。
理解:当两个类之间没有关联时,通过委托来实现在两个类相关的内容操作,例如 当猫出现在时老鼠就会跑掉,定义两个类猫和鼠,这两个类之间不应该有关联,但要让鼠在猫叫的时候就执行自己的跑这个方法,就得通过委托来实现。
- 本文固定链接: http://madong.net.cn/index.php/2012/08/250/
- 转载请注明: 管理员 于 小东 发表