你必须知道.net笔记.docx

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
你必须知道.net笔记

在.NET中,继承按照其分类方式不同,一般分类如下:实现继承:派生类继承了积累的所有属性和方法,并且只能有一个积累,在.NET中System.Object是所有类型的最终基类,这种继承方式称为实现继承。接口继承:派生类继承了接口的方法签名。不同于实现继承的是,接口继承允许多继承,同时派生类只继承了方法签名而没有方法实现,具体的实现必须在派生类中完成。因此,确切的说,这种继承方法应该称为接口实现。继承本质的认识继承是可传递的,子类是对父类的扩展,必须继承父类的方法,同时可以添加新方法。子类可以调用父类方法和字段,而父类不能调用子类的方法和字段。虚方法如果实现覆写操作,使得父类指针可以指向子类对象成员。子类不光继承弗雷德公有成员,同时继承了父类的私有成员,只是在子类中不被访问。‘New关键字在虚方法继承中的阻断作用。关注对象原则:调用子类还是父类的方法,取决于创建的对象是子类对象还是父类对象,而不是它的引用类型。例如Bird bird2=new Chicken()时,我们关注的是其创建对象为Chicken类型,因此子类将继承父类的字段和方法,或者覆写父类的方法,而不是关注bird2的引用类型是否为Bird。引用类型的区别决定了不同的对象在方法中的不同的访问权限Bird bird=new Chicken();Chicken chicken=new Chicken();Bird对象和chicken对象在内存布局上是一样的,差别在于引用指针的类型不同,前者是Bird指针类型后者是Chicken指针类型执行就近原则:对于同名字段或方法,编译器是按照其顺序查找来引用的,也就是访问离它创建最近的字段或方法。这是父类排在子类前,先于子类编译的原因。抽象类继承与接口继承在规则上的归纳抽象类适合于有族层概念的关系,而接口最适合不同类提供通用功能。接口着重于CAN-DO关系类型,而抽象类则偏重于IS-A是关系。接口多定义对象的行为;抽象类多定义对象的属性。如果预计会出现版本问题,可以创建抽象类因为值类型是密封的,所以只能实现接口,而不能继承类。继承之毒瘤主要体现在:继承可能造成子类的无限膨胀,不利于类体系的安全和维护继承的子类对象确定于编译期,无法满足需要运行期才确定的情况,而类聚合很好地解决了这一问题随着继承层次的复杂化或者子类的多样化,不可避免的灰出现对父类的无效继承或者有害继承。子类部分的继承父类的方法或者属性,更能适应实际的设计需求面向对象的基本原则:多聚合,少继承,低耦合,高内聚Adapter模式就其实现方式主要包括:类的Adapter模式。通过引入新的类型来继承原有类型,同时实现新加入的接口方法。其缺点就是耦合度高,需要引入过多的新类型对象的Adapter模式。通过聚合而非继承的方式来实现对原有系统的扩展,松散耦合,较少的新类型继承中重点内容重点规则:密封类不可以被继承继承关系中,我们跟多的是关注其共性而不是其特性,因为共性是层次复用的基础,而特性是系统扩展实现单继承,接口多继承从宏观来看,继承多关注与共通性,而多态则着眼于差异性继承的层次应该有所控制,否则类型之间的关系维护会消耗更多精力面向对象原则:多组合,少继承,低耦合,高内聚只读字段在构造函数中被赋值属性的实质是在编译时分别将get和set访问器实现对外方法,从而达到控制属性目的而对属性的读写伴随的实际是一个相应方法的调用,它以一种简单的方式实现了方法。get负责可读属性,set负责可写属性封装规则:尽可能的调用类的访问器,而不是成员,即使在类的内部内部私有部分可任意更改,但一定要在保证外部接口稳定的前提下将对字段的读写控制实现为属性,而不是方法,否则舍近求远,非明智之选类封装是由设置访问权限来实现的,对内实现为private,对外实现为public。还要对protected,internal有较深的理解基类继承式多态:Flies myFile=new WORDFile();myFile.Open();//WORDFile为Files的子类接口实现式多态:IFliesOpen myFile=new WORDFile();myFile.Open();//IFliesOpen为接口通常将子类中共有的但却容易变化的特征抽取为虚函数在父类中定义,而在子类中通过覆写来实现操作多态的规则和意义:多态提供了对同一类对象的差异化处理方式,实现了对变化和共性的有效封装和继承,体现了“一个接口,多种方法的”的思想,是方法抽象机制成为可能在.NET中,默认情况下方法是非虚的,以C#为例必须显式的通过virtual和abstract标记为虚方法或者抽象方法,以便在子类中覆写父类方法在面向对象的基本要素中,多态和继承、多态和重载存在紧密的联系,多态的基础就是建立有效的继承体系,一次继承和重载是多态的实现基

文档评论(0)

3471161553 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档