OOP (Object Oriented Programming, 面向对象) (封装、继承、多态)

创建时间:
2014-06-28 11:17
最近更新:
2018-06-19 08:17

key words

  • inheritance: 继承
  • polymorphism: 多态性
  • abstract: 抽象
  • sealed: 密封
  • virtual:
  • override: 重写 (覆盖)
  • new: 覆盖
  • base
  • this

Origin

最早出现的面向对象程序设计语言是 Simula 语言。该语言是 1967 年挪威科学家 Ole-Johan Dahl 和 Kristen Nygaard 正式发布的。引入了所有后来面向对象程序设计语言所遵循的基础概念,例如对象、类、继承等。

随后,比较经典的面向对象程序设计语言有 SmallTalk、C++、Java 等。

总的来说,面向对象的程序设计语言有如下的一些特点:访问控制、封装、继承性、多态性。

-- 《VisualBasic完全自学宝典_VB6_清华大学出版社_200806》 page 28

What

面向对象技术不同于传统的结构化技术,它主要体现在使用对象进行程序开发。对象是指包含数据及其操作的实体,即在传统的数据结构中加入一些过程,使用这些过程来赋予对象对数据的操作功能,这些过程就是后面要提到的成员函数。
-- 《VisualBasic完全自学宝典_VB6_清华大学出版社_200806》 page 28

面向对象的 3 大特性

  • 封装性
  • 继承性
  • 多态性 - 详见本站专文

对象的成员

对象的成员可分为数据成员与函数成员。
数据成员包含了对象的数据,包括字段、常量和事件;
函数成员提供了操作该对象中的数据的功能,包括构造函数、终结器、方法、属性、索引器、运算符。

Resource - MSDN

  1. 面向对象的编程 (C# 和 Visual Basic) - Entrance on MSDN
  2. 抽象类、密封类及类成员 (C# 编程指南)

Resource - Opposite

  1. 面向对象是个骗局
  2. 面向对象是个骗局
  3. 过度面向对象 - 痛苦的 Java 程序员
  4. 他们为什么说面向对象有问题,探讨面向对象的一些缺陷
  5. 如此理解面向对象编程
  6. 如此理解面向对象编程 (English)
  7. C++ 多继承有什么坏处,Java 的接口为什么可以摈弃这些坏处

Resource

  1. Tony Praise: 《大话设计模式_程杰_清华大学出版社_2007》 之 "附录A 培训实习生 - 面向对象基础" page 335
  2. 跟 Bob 大叔观 OO 原则
  3. 忘记数据库