1、面向对象
什么事面向对象?一种分析问题的方式,增强了程序的可扩展性
面向对象三大特性:封装、继承、多态
什么是类?什么事对象?类和对象的区别?
类是模子,确定对象将会拥有的特性(属性)和行为(方法)
对象是一个能够看的到、摸得着的具体实体——万物皆对象
类是模具,创建对象的模具,抽象的。对象是实体的,是类的具体实例。对象具有属性(特征)和方法(行为)
- 类是一种数据类型,用户定义的数据类型
- 类组成:字段、属性、方法、构造函数等
类中包含了数据(用字段表示)与行为(用方法(函数、功能)表示,方法为一块具有名称的代码)
关键字:this 当前对象 base 父类对象
2、封装继承多态介绍
封装
- 属性封装了字段
- 方法的多个参数封装成了一个对象
- 将一堆代码封装到了一个方法中
- 将一些功能封装到了几个类中
- 将一些具有相同功能的代码封装到了一个程序集中(dll、exe)并且对外提供统一的访问接口。(属性名、方法名等)
继承(是指类与类之间的关系)
- LSP里氏转换原则
- 类的单根性继承性、传递性、继承时构造函数的问题(:this() , :base())。构造函数不能被继承。
- 所有类都直接或间接的继承自 object 类
多态
多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化
虚方法,抽象方法
关于虚方法需要注意的几点
- 父类中如果有方法需要让子类重写,则可以将该方法标记为virtual
- 虚方法在父类中必须有实现,哪怕是空实现(意思是必须有方法体)
- 虚方法子类可以重写(override),也可以不重写
关于抽象方法需要注意的几点
- 需要用 abstract 关键字标记
- 抽象方法不能有任何方法实现(不能有方法体)
- 抽象成员必须包含在抽象类中
- 由于抽象成员没有任何实现,所以子类必须将抽象成员重写
- 抽象类不能实例化
- 抽象类的作用:抽象类的作用就是为了让子类继承
- 抽象类中可以包括抽象成员,可以包括有具体代码的成员
- 还有抽象方法不能用 static 修饰
接口
- 接口中只能包含方法(属性、事件、索引器也都是方法)
- 接口中的成员都不能有任何实现
- 接口不能被实例化
- 接口中的成员不能有任何访问修饰符。(默认为public)
- 实现接口的子类必须将接口中的所有成员全都实现
- 子类实现接口的方法是,不需要任何关键字,直接实现即可
- 接口存在的意义就是为了多态
接口解决了类的多继承问题
以后体积庞大的问题
显式实现接口
小总结
五个访问修饰符
- private 当前类中可以访问,类中成员的默认访问修饰符
- protected 当前类及子类中可以访问(在继承中使用)
- interna 当前程序集内部可以访问
- protected internal 当前程序集或子类中(不同程序集也可以访问)
- public 任何地方
字段和属性及索引器
添加引用和导入命名空间
静态类
静态类不能被实例化:abstract
静态类不能被继承: sealed
sealed关键字,表示不能被继承。(密封类)
时间: 2024-10-13 17:19:31