File tree 1 file changed +5
-3
lines changed
1 file changed +5
-3
lines changed Original file line number Diff line number Diff line change @@ -2127,15 +2127,15 @@ This usage of traits is similar to Java interfaces.
2127
2127
2128
2128
We can write a trait declaration that _ inherits_ from other traits, called _ supertraits_ .
2129
2129
Types that implement a trait must also implement its supertraits.
2130
-
2131
- For example, we can define a ` Circle ` trait that only types that also have the ` Shape ` trait can have:
2130
+ For example,
2131
+ we can define a ` Circle ` trait that inherits from ` Shape ` .
2132
2132
2133
2133
~~~~
2134
2134
trait Shape { fn area(&self) -> float; }
2135
2135
trait Circle : Shape { fn radius(&self) -> float; }
2136
2136
~~~~
2137
2137
2138
- Now, implementations of ` Circle ` methods can call ` Shape ` methods:
2138
+ Now, we can implement ` Circle ` on a type only if we also implement ` Shape ` .
2139
2139
2140
2140
~~~~
2141
2141
# trait Shape { fn area(&self) -> float; }
@@ -2153,6 +2153,8 @@ impl CircleStruct: Shape {
2153
2153
}
2154
2154
~~~~
2155
2155
2156
+ Notice that methods of ` Circle ` can call methods on ` Shape ` , as our
2157
+ ` radius ` implementation calls the ` area ` method.
2156
2158
This is a silly way to compute the radius of a circle
2157
2159
(since we could just return the ` circle ` field), but you get the idea.
2158
2160
You can’t perform that action at this time.
0 commit comments