首页 新闻 赞助 找找看

如图,IResultA 不包含msg,但是能接收ResultModel是啥原理啊

0
悬赏园豆:10 [已解决问题] 解决于 2020-04-10 11:20

noert的主页 noert | 初学一级 | 园豆:34
提问于:2020-04-10 10:32
< >
分享
最佳答案
0

因为ResultModel 间接继承/实现了接口IresultA
相当于ResultModel 同时继承/实现了接口IresultAIresultB

类似于生物(IresultA) <- 动物(IresultB) <- 狗(ResultModel)的概念,即可以认为狗是生物,或者是动物。

但是使用的时候,如果类型为IResultA,则你只能调用它的code属性和方法,如果类型为IResultB,则只能调用它的msg属性和方法。 这取决于调用者关心哪些属性,如果要处理这两个属性,则应该转为ResultModel类型的变量,而实际上的对象都是同一个。

收获园豆:10
。淑女范erり | 小虾三级 |园豆:961 | 2020-04-10 10:56

了解了,感谢!

noert | 园豆:34 (初学一级) | 2020-04-10 11:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册