ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

面向对象

2022-06-20 12:00:38  阅读:129  来源: 互联网

标签:继承 复用 接口 面向对象 抽象 方法 实现


what:在软件的分析设计中,遵循面向对象的设计原则 并且 使用封装继承,多态的技术,就是面向对象。

系列技术的统称:继承 多态 封装 类 对象。

why:

优点:

1.更贴近人的思维,程序设计变得简单。

2.有利于代码的复用和可维护性。

 

缺点:面向过程对比

1.前期设计复杂

2.代码调试麻烦

3.性能有所降低

 

主要思想:

分而治之;大任务 【大项目,复杂需求】

xx系统-> 子系统 ->组件模块

高内聚,低耦合。 联系紧密的存放在一个系统中, 联系不紧密的放在不同系统中  类 界面

封装变化

 

oop原则

1开闭原则--易扩展,不修改

2类的单一职责

8迪米特法则

 

面向对象的三大特性 c#

封装:

what:组织代码就是封装。 语句->方法 方法,字段—>类 类 ->组件 组件1,组件2->开发包 系统。

why:好处:方便代码的复用和维护。不同功能封装到不同的类中,出了问题,容易查找。 

who/where/when: 程序员 时时刻刻都在使用。 添加脚本,类,魔板。

how:所有符合封装定义的做法都叫做封装。

继承:类的层次。

子类base 同类this 。子类有无参构造函数的时候父类必须也要有。

 

代码复用的基本方式:2种

继承:代码复用的基本方式

组合:代码服用的基本方式

共性:代码复用

不同:

继承: 代码复用 概念复用

组合:代码复用{整体 部分}

 

原则:使用组合而且继承(复用的最佳实践)

组合语法 class { B b}即在别的类中做成员。

 

实际问题的处理:

技巧 A B 1) is 判断 继承

2)is 不成立则 has 是否成立

 

多态:

abstract 抽象

virtual 虚方法

override 重写方法

sealed(密封)放类前,该类不能让任何类继承

放重写方法前,当前类子类不能重写该方法。

 

绑定:类型和关联的调用关系

系统确定一个类型能调用哪些方法的过程。就是绑定。

静态绑定:运行前就确定的。编译时绑定

动态绑定:运行中确定的。运行时绑定

 

c#中的抽象类的特征

抽象类不能实例化。(不能new 该类不能实例化,所以必须new 子类)但是 abstract class A{}; A[] aa = new A[3];可以此为数组语法。 

可以包含虚方法。
抽象类可以包含抽象方法和抽象访问器。
不能用 sealed 修饰符修饰抽象类,因为这两个修饰符的含义是相反的。 采用 sealed 修饰符的类无法继 承,而 abstract 修饰符要求对类进行继承。
从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现。

 

 

1.只有声明定义,没有实现的方法,就是抽象方法。

2.实现类必须实现所有的抽象方法。

抽象方法必须放到抽象类中或者接口中。

3.放在抽象类中的抽象方法 必须 加abstract 不能私有。

实现类实现抽象方法的方法必须带有override 不能私有。

 

接口:

interface创建的数据类型

接口名推荐使用“I”开头,其后首字母大写ISwitch

接口的特点:

接口是抽象的,接口是一组行为的抽象。(只有行为)

接口只关注行为,且不关注行为的实现,实现由类完成。

接口不关注数据(接口中不能有字段。只有行为即方法)。

 2.接口是规范,定义一组对外的行为规范,要求他的实现类必须遵守。

3.实现类必须是接口的成员。

接口中的抽象成员不能加abstract。不能加访问修饰符。默认抽象默认公共。

when,why,where

1.扩展一个已有类 手机5个功能 发明了一个新功能

1)新功能做成接口  为了更多类的复用

2)新类:原来的类,接口 

2.规范不同类型的行为,达到不同类型在行为上是一致的。

提取不同类别的共性行为,让这个行为得到最大复用。

接口语法特点:

能包含 :属性方法,事件,索引。不能包含字段

所有成员不能加访问修饰符,默认共有

实现类可以实现多个接口,且每个接口中所有成员都必须实现。

接口中的成员在实现类中以public的方式实现(除了显示实现)

接口的引用可以指向实现类的对象 接口 obj = new 实现类()。

 

接口的使用:

继承:

1.类继承类  单继承 类名:类名1  只能继承一个父类

 

 

2.类继承接口 多继承 称为 类实现接口 

3.接口继承接口  用得少不能有实现  接口 1 :接口2 ,接口3

接口与接口可继承,且可多继承。

 

4.结构(struct)可以实现接口,但是不能继承

 

类继承接口实现方式:

1.隐式实现:

2..显式实现:

显式实现:在实现的成员前加接口名,并且不能加任何访问修饰符,默认private。

显式实现成员:只能通过接口类型的引用调用。

 

 如son.Eye()就是通过接口调。

作用:

1.解决接口中成员对实现类不适用问题(很少用)

2.解决多接口实现二义性(很少用)

 

常用接口

IComparable常用比较接口

IComparer比较接口提供比较方法,常用于排序比较

IEnumerable 常用枚举器,使类型支持简单迭代

IEnumerator枚举器,支持movenext,自己可以控制迭代节奏

 

 

标签:继承,复用,接口,面向对象,抽象,方法,实现
来源: https://www.cnblogs.com/yc97gg/p/16363577.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有