Smalltalk编程基础:继承、元类与对象标识解析
1. 继承与方法搜索
在面向对象编程中,确定与消息对应的要激活的方法的过程,即方法搜索,是比较难理解的部分。
1.1 简单的方法搜索
当向一个对象发送消息时,会在接收对象的类的方法列表中查找是否存在与消息选择器同名的方法。如果存在,该方法被激活,方法搜索结束。例如:
"假设对象obj接收消息message"
obj message
此时会在 obj 所属类的方法列表中查找 message 方法。
1.2 复杂的方法搜索
若在接收者类的目录中找不到该方法,由于类会继承其超类的方法,搜索需要继续在超类的目录中进行。下面通过 Person 和 Student 类的例子详细说明:
"创建Person类的new类方法"
Person class>>new
"creates a new person and initializes the
instance variables"
^super new initialize
"Person类的initialize实例方法"
Person>>initialize
self lastName: ''.
self firstName: ''.
self birthday: Date today.
超级会员免费看
订阅专栏 解锁全文
69

被折叠的 条评论
为什么被折叠?



