封装对象的原理
继承性
多态性
接口
- 封装就是类的内部成员和实现隐藏起来
好处
Ø良好的封装能够减少耦合
Ø类内部的实现可以自由地修改
Ø类具有清晰的对外接口
数据隐藏
是封装最有用的方式之一
实现方式:访问限制修饰符
Øpublic 无限制,允许任何人来访问
Øprotected internal = protected + internal
ØInternal 允许项目或程序内部的类来访问
Øprotected 继承时子类可以对基类有完全访问权
Øprivate 只允许同一个类中的成员访问
l属性和索引器也用来封装类的细节,并提供公用接口给该类的用户
- 继承性(inheritance)
一个类可以有能力直接从另一个类获得其代码和数据
l派生类从基类那里获得其所有的成员
lpublic class InsuranceAccount : Account
lC# 中只支持单继承,多继承可以通过接口实现同样的功能
防止继承
public sealed class XX
例:
GUI设计的Form look and feel
都是从.NET Form class
继承下来的
l如果Class Child是继承Class Parent而来
多态ØChild的对象中包含一个Parent的对象
如何访问基类成员
- 派生类可以调用基类的方法
- 通过使用base关键字
- 派生类在访问基类的时候有一定的限制,不能访问 private 的成员;internal的基类成员只能被同一个程序集中的派生类访问
-
-
-
-
-
-
- 编译时的多态:重载(overload):用于同一类中
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
方法名必须相同
-
参数列表必须不相同
-
返回值类型可以不相同
-
-
-
-
-
运行时的多态:覆写虚成员实现(override),虚方法可以被覆写;用于继承关系的类中
-
方法名必须相同
-
参数列表必须相同
-
返回值类型必须相同
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 编译时的多态:重载(overload):用于同一类中
-
-
-
-
-
接口为类提供了蓝图,PM一级的人通常设计的时候会定义一系列的接口
客户端需要一些接口,服务器端来实现这些接口来满足客户端的需求,类似协议的功能
接口可以从多个基接口派生
接口中所有方法必须是public的