抽象过程
纯粹的面向对象程序设计方式:
- 万物皆为对象: 对象可以存储数据,还可以在其自身执行操作
- 程序是对象的集合: 通过发送消息告诉彼此要做的
- 每个对象都有自己的由其它对象构成的存储:可以在程序中构建复杂的体系,并将复杂性隐藏在对象之后
- 每个对象都是某个类的对应实例:类的特性在于可以发送什么样的消息给它
- 某一特定类型的对象可以接收同样的消息
访问控制:隐藏实现细节
类创建者:创建新数据类型的程序员
客户端程序员:使用各种类以实现快速应用开发
- 向客户端程序员隐藏实现细节
- 库设计者可以改变设计方式而不影响客户端程序员
accesser specifier
- public
- private
- protected: 继承的类可访问
- default: 包访问权限,类可以访问在同一个包中的其它类成员
继承
is-a:导出类只覆盖基类的方法。
is-like-a:导出类含新的接口元素。
- 静态绑定:编译器将产生对一个具体函数名字的调用,而运行时将这个调用解析到将要执行的代码的绝对地址
- 动态绑定:当向对象发送消息时,被调用的代码直到运行时才能确定。编译器确保调用方法的存在,并对调用参数和返回值执行类型检查(无法提供该保证的语言是弱类型的),但是并不知道将被执行的确切代码。Java默认动态绑定,更好的支持多态。