Skip to content

Commit e079bbb

Browse files
authored
Update 08_Covariant_Overriding.md
1 parent 6a631ab commit e079bbb

File tree

1 file changed

+9
-40
lines changed

1 file changed

+9
-40
lines changed

ch03/08_Covariant_Overriding.md

Lines changed: 9 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1+
《《《 [返回首页](../README.md) <br/>
2+
《《《 [上一节](../ch04/00_Declarations.md)
3+
14
## 协变覆盖
25

36
`Java 5` 支持协变方法重写。 这个特性与泛型没有直接关系,但我们在这里提到它,因为它值得了解,并且因为它使用了上一节中描述的桥接技术来实现。
47

5-
`Java 1.4` 及更早版本中,只有参数和返回类型完全匹配时,一个方法才能覆盖另一个方法。 在 `Java 5` 中,如果参数类型完全匹配,并且重写方法的返回类型是另一个方法的返回类型的子类型,则方法可以重写另一个方法。
8+
`Java 1.4` 及更早版本中,只有参数和返回类型完全匹配时,一个方法才能覆盖另一个方法。 在 `Java 5` 中,如果参数类型完全匹配,并且重写方法的返回类型
9+
是另一个方法的返回类型的子类型,则方法可以重写另一个方法。
610

711
`Object` 类的克隆方法说明了协变覆盖的优点:
812

@@ -64,43 +68,8 @@
6468
public bridge java.lang.Object Point.clone()
6569
```
6670

67-
这里桥接技术利用了这样一个事实,即在类文件中,同一类的两个方法可能具有相同的参数签名,尽管这在 `Java` 源代码中是不允许的。 桥接方法只是简单地调用第一种方法。 (同样,在撰写本文时,`Sun JVM` 打印出的是 `volatile` 而不是桥。)
68-
69-
70-
71-
72-
73-
74-
75-
76-
77-
78-
79-
80-
81-
82-
83-
84-
85-
86-
87-
88-
89-
90-
91-
92-
93-
94-
95-
96-
97-
98-
99-
100-
101-
102-
103-
104-
105-
71+
这里桥接技术利用了这样一个事实,即在类文件中,同一类的两个方法可能具有相同的参数签名,尽管这在 `Java` 源代码中是不允许的。 桥接方法只是简单地调用第一
72+
种方法。 (同样,在撰写本文时,`Sun JVM` 打印出的是 `volatile` 而不是桥。)
10673

74+
《《《 [下一节](07_Bridges.md) <br/>
75+
《《《 [返回首页](../README.md)

0 commit comments

Comments
 (0)