隐式转换和显式转换的区别

隐式函数

当我们调用一个对象的方法的时候,但是这个对象并没有这个方法,此时就会触发隐式转换,会把这个对象偷偷的转换为具有这个方法的对象。

比如下面的例子,小鸡可以走路也可以跑,但是它也想像小鸟一样飞,但是它有没有这个功能。我们可以在不对小鸡整改的基础上,引入ChickenImplicit,让小鸡可以隐式的调用Bird的fly方法,让它可以像小鸟一样飞。

当我们需要隐式转换的时候,我们就需要用implicit关键字。

隐式转换的时候,他会先全局的查找是否有匹配的方法或者参数,如果没有再考虑隐式转换。

由于隐式参数是根据类型的,所以同一作用域不能定义多个同一个类型的,并且默认值是优先于默认的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容