From 1dd0ad82bc91fa35dbf8b39ddf7bbea42f961f73 Mon Sep 17 00:00:00 2001 From: Sunface Date: Fri, 11 Mar 2022 15:09:36 +0800 Subject: [PATCH] Update src/basic/trait/trait-object.md --- src/basic/trait/trait-object.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/basic/trait/trait-object.md b/src/basic/trait/trait-object.md index 049fdfc3..f6ed93d4 100644 --- a/src/basic/trait/trait-object.md +++ b/src/basic/trait/trait-object.md @@ -297,7 +297,7 @@ help: function arguments must have a statically known size, borrowed types alway 简而言之,当类型 `Button` 实现了特征 `Draw` 时,类型 `Button` 的实例对象 `btn` 可以当作特征 `Draw` 的特征对象类型来使用,`btn` 中保存了作为特征对象的数据指针(指向类型 `Button` 的实例数据)和行为指针(指向 `vtable`)。 -一定要注意,此时的 `btn` 被当作特征 `Draw` 的特征对象的实例数据,而不再是类型 `Button` 的实例对象,而且 `btn` 的 `vtable` 只包含了实现自特征 `Draw` 的那些方法(比如 `draw`),因此 `btn` 只能调用实现于特征 `Draw` 的 `draw` 方法,而不能调用类型 `Button` 本身实现的方法和类型 `Button` 实现于其他特征的方法。**也就是说,`btn` 当作哪个特征对象来用,它的 `vtable` 中就包含哪个特征的方法。** +一定要注意,此时的 `btn` 是 `Draw` 的特征对象的实例,而不再是具体类型 `Button` 的实例,而且 `btn` 的 `vtable` 只包含了实现自特征 `Draw` 的那些方法(比如 `draw`),因此 `btn` 只能调用实现于特征 `Draw` 的 `draw` 方法,而不能调用类型 `Button` 本身实现的方法和类型 `Button` 实现于其他特征的方法。**也就是说,`btn` 是哪个特征对象的实例,它的 `vtable` 中就包含了该特征的方法。** ## Self 与 self