请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

第五章 Java 的 duck typing

视频中只演示了 Java 的 继承,如果是用 接口去实现呢,那不就是老师在 go 里所要讲的灵活的 duck typing 了吗?

正在回答

1回答

ccmouse 2018-02-12 15:09:56

这里说了<R extends Retriever>,其中Retriever就是一个接口。不用泛型的话写成String Download(Retriever r)。

在Java里我传进来的这个Retriever必须显式实现Retriever接口,不然的话即使他有get方法也不行(传统面向对象类型系统)。但是go语言中只要传进来的东西有get方法,就认为它是符合Retriever接口的,就可以传过来(duck typing)。

Java的传统面向对象类型系统带来的问题是如果我们同时需要Retriever接口和Poster接口,在Java里必须加一个RetrieverPoster接口,别人必须显式实现它。否则如果人家implements Retriever, Poster,那还是不能传过来。

2 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信