面向对象

来源:互联网 发布:程序员什么时候跳槽好 编辑:程序博客网 时间:2024/06/03 12:07

面向对象 :

面向对象三大基本特征 : 封装 、继承 、多态 .


封装 :

说明 :

  • 数据封装 : 隐藏对象的属性 , 控制读取和修改权限 .
  • 函数封装 : 将一系列有规律的数据处理整合 , 方便调用 , 提高代码复用率 .

作用 :

对外公开接口 , 有利于控制读写级别 , 使代码模块化 , 更安全 .


继承 :

说明 :

面向对象的核心 , 子类继承父类 , 则子类拥有父类所有 属性 和 功能 , .

作用 :

利于修改和扩展 , 极大提高代码复用率 , 使代码结构层次清晰 .

继承形式 :

  • 实现继承 : 最常见的继承形式 , 直接继承父类的属性和方法 , 无需额外的代码 .
  • 抽象继承 : 继承接口中的属性和方法 , 并且必须实现接口中的方法 .
  • 可视继承 : 子窗体使用父类窗体的外观和实现代码 .

多态 :

说明 :

多态即多种状态 , 不同对象调用同名函数 , 产生不同的效果 .

实现形式 :

  • 重写 ( Override ) : 继承父类 , 重写父类的虚函数 , 不同子类实现方法不一样 , 不同对象调用一个同名函数 , 产生的效果不同 .

  • 重载 ( Overload ): 一个类中出现两个以上同名函数 , 参数不同 , 调用时根据传参来判断具体调用哪个函数 .

作用 :

封装和继承都是为了代码复用 , 而多态的意义是实现接口重用 , 保证一条原型链上的所有实例化对象都可以正确调用 .

重点注意 :

其实重载的概念并不属于面向对象 , 但是大多数人都认为重载也是实现多态 , 这里就把重载也算进来了 , 从本质上讲 , 重载的实现原理是语言特性 , 在一个类出现两个同名函数时 , 例如 func() 和 func(int num) , 根据参数不同 , 编译器会将这两个函数编译成 void_fun 和 int_fun , 再根据调用时 , 的传参情况来决定具体调用哪个函数 , 在编译期间已经将两个函数确定好了 , 都是静态的 , 也就是说他们的地址在编译期间已经绑定好了 , 所以 , 重载与多态无关 .

2 0
原创粉丝点击