![]() |
1
3
当您调用扩展方法时,编译器会查看左侧引用的类型,并找到最合适的方法。所以当你打电话的时候
因此,在您的情况下,编译器将查找具有
使用
另一种选择可能是
铸造
尽管我注意到你没有
不同的
派生类的扩展方法,因此与您发布的内容没有区别
|
![]() |
2
0
这是对 D Stanley's answer .
如果启用了扩展方法
二者都
然后,从子类调用它与从基类调用它之间存在区别。
从内部
将调用
将调用
将使用上述两种扩展方法生成以下输出:
|
![]() |
3
0
其他答案提供了很好的解释 为什么? 如果你有问题,我想确保你知道最快走出困境的方法:
|
![]() |
Codebadger · 将泛型传递给扩展方法 7 年前 |
![]() |
Otman IGHOULASSEN · 从子类调用基类的扩展方法 7 年前 |
![]() |
sirksel · 拳击弦场或扩展Kotlin中所有弦的替代方案? 7 年前 |
![]() |
Roman · 在Swift中使用布尔的视图控制器扩展 7 年前 |
![]() |
Mercato · 为什么协议默认值必须通过Swift中的扩展来实现? 7 年前 |