面向对象编程概念理解
2013-10-19 10:58
337 查看
面向对象编程:通过把有共同的属性的客观事物抽象成为类,然后对类中的实体进行编程
封装
最开始学封装,最大的感觉就是封装能够把某些常用代码段写到方法里面,需要用的时候直接调用方法,这样可以减少精简代码量,提高代码复用率,提交编程效率,而且还使代码的可读性增强。但在后来的学习学习过程中,使我更深入了解了封装的作用:
所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。这样做的好处在于可以使类内部的具体实现透明化,只要其他代码不依赖类内部的私房数据,就可以安心修改这些代码,这样的大大增强了程序的安全性。
安全性主要是依赖依靠对类、数据和方法的访问控制,从语法上讲就是加上private、protected、public. Interna、protected internal等访问级别修饰符
继承
继承是通过使用“派生”来实现的,而派生意味着类是使用“基类”声明的,它的数据和行为从基类继承。通过在派生的类名后面追加冒号和基类名称,可以指定基类,如下所示:
子类(即派生类)将获取基类的所有非私有数据和行为以及新类为自己定义的所有其他数据或行为。因此,新类具有两个有效类型:新类的类型和它继承的类的类型。
多态:
当派生类从基类继承时,它会获得基类的所有方法、字段、属性和事件。 派生类的设计器可以选择是否
重写基类中的虚拟成员。
继承最接近的基类方法而不重写它
定义隐藏基类实现的成员的新非虚实现
仅当基类成员声明为 virtual 或 abstract 时,派生类才能重写基类成员。 派生成员必须使用 override 关键字显式指示该方法将参与虚调用。
1. 基类可以定义并实现虚方法,派生类可以重写这些方法。
2. 如果希望派生成员具有与基类中的成员相同的名称,但又不希望派生成员参与虚调用,则可以使用 new 关键字。
接口
接口只包含方法、属性、事件或索引器的签名。 实现接口的类或结构必须实现接口定义中指定的接口成员
一个接口可从一个或多个基接口继承。
当基类型列表包含基类和接口时,基类必须是列表中的第一项。
实现接口的类可以显式实现该接口的成员。 显式实现的成员不能通过类实例访问,而只能通过接口实例访问。
注意:字段不能是虚拟的,只有方法、属性、事件和索引器才可以是虚拟的
封装
最开始学封装,最大的感觉就是封装能够把某些常用代码段写到方法里面,需要用的时候直接调用方法,这样可以减少精简代码量,提高代码复用率,提交编程效率,而且还使代码的可读性增强。但在后来的学习学习过程中,使我更深入了解了封装的作用:
所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。这样做的好处在于可以使类内部的具体实现透明化,只要其他代码不依赖类内部的私房数据,就可以安心修改这些代码,这样的大大增强了程序的安全性。
安全性主要是依赖依靠对类、数据和方法的访问控制,从语法上讲就是加上private、protected、public. Interna、protected internal等访问级别修饰符
继承
继承是通过使用“派生”来实现的,而派生意味着类是使用“基类”声明的,它的数据和行为从基类继承。通过在派生的类名后面追加冒号和基类名称,可以指定基类,如下所示:
子类(即派生类)将获取基类的所有非私有数据和行为以及新类为自己定义的所有其他数据或行为。因此,新类具有两个有效类型:新类的类型和它继承的类的类型。
多态:
当派生类从基类继承时,它会获得基类的所有方法、字段、属性和事件。 派生类的设计器可以选择是否
重写基类中的虚拟成员。
继承最接近的基类方法而不重写它
定义隐藏基类实现的成员的新非虚实现
仅当基类成员声明为 virtual 或 abstract 时,派生类才能重写基类成员。 派生成员必须使用 override 关键字显式指示该方法将参与虚调用。
1. 基类可以定义并实现虚方法,派生类可以重写这些方法。
2. 如果希望派生成员具有与基类中的成员相同的名称,但又不希望派生成员参与虚调用,则可以使用 new 关键字。
接口
接口只包含方法、属性、事件或索引器的签名。 实现接口的类或结构必须实现接口定义中指定的接口成员
一个接口可从一个或多个基接口继承。
当基类型列表包含基类和接口时,基类必须是列表中的第一项。
实现接口的类可以显式实现该接口的成员。 显式实现的成员不能通过类实例访问,而只能通过接口实例访问。
注意:字段不能是虚拟的,只有方法、属性、事件和索引器才可以是虚拟的
相关文章推荐
- 对面向对象编程中的继承概念的再理解
- 转:全面理解javascript的caller,callee,call,apply概念
- TDS学习文档2——概念理解
- 理解虚基类、虚函数与纯虚函数的概念
- Spring核心概念理解-IoC容器、DI、AOP
- 如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念
- 理解虚基类、虚函数与纯虚函数的概念
- 增强学习(一)-基本概念的理解
- 理解端口,系统服务,系统进程概念
- 如何理解统计学中「惩罚」的概念
- 机器学习基本概念理解
- 理解COM编程中的“种类”(Category)概念
- 理解 angular2 基础概念和结构 ----angular2系列(二)
- 对于重排序概念的理解与实战
- 理解嵌入式开发中的一些硬件相关的概念
- Android架构宏观理解和Android四个重要组件概念
- 深度学习入门必须理解这25个概念
- 深入理解 Javascript 面向对象编程
- C语言基本概念理解
- 简单理解Hibernate三种状态的概念及互相转化