假设有如下两个接口:<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee">
<img src="/Images/OutliningIndicators/None.gif" align="top" alt=""><span style="color: #0000ff">public<span style="color: #000000">?<span style="color: #0000ff">interface<span style="color: #000000">?IA<img id="Codehighlighter1_20_46_Open_Image" onclick="code_collapse_toggle(this);" src="/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt=""><img id="Codehighlighter1_20_46_Closed_Image" style="display: none" onclick="code_collapse_toggle(this);" src="/Images/OutliningIndicators/ContractedBlock.gif" align="top" alt=""><span id="Codehighlighter1_20_46_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="https://www.52php.cn/res/2019/02-14/22/a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif" alt=""><span id="Codehighlighter1_20_46_Open_Text"><span style="color: #000000">{<img src="/Images/OutliningIndicators/InBlock.gif" align="top" alt="">????<span style="color: #0000ff">string<span style="color: #000000">?GetA(<span style="color: #0000ff">string<span style="color: #000000">?a);<img src="/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="">}<span style="color: #000000"><img src="/Images/OutliningIndicators/None.gif" align="top" alt=""><span style="color: #0000ff">public<span style="color: #000000">?<span style="color: #0000ff">interface<span style="color: #000000">?IB<img id="Codehighlighter1_68_91_Open_Image" onclick="code_collapse_toggle(this);" src="/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt=""><img id="Codehighlighter1_68_91_Closed_Image" style="display: none" onclick="code_collapse_toggle(this);" src="/Images/OutliningIndicators/ContractedBlock.gif" align="top" alt=""><span id="Codehighlighter1_68_91_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="https://www.52php.cn/res/2019/02-14/22/a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif" alt=""><span id="Codehighlighter1_68_91_Open_Text"><span style="color: #000000">{<img src="/Images/OutliningIndicators/InBlock.gif" align="top" alt="">????<span style="color: #0000ff">int<span style="color: #000000">?GetA(<span style="color: #0000ff">string<span style="color: #000000">?a);<img src="/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="">}
他们都要求实现方法GetA,而且传入的参数都是一样的String类型,只是返回值一个是String一个是Int,现在我们要声明一个类X,这个类要同时实现这两个接口:
由于接口中要求的方法的方法名和参数是一样的,所以不可能通过重载的方式来解决,那么我们该如何同时实现这两个接口拉?解决办法是把其中的不能重载的方法直接写成接口的方法,同时要注意这个方法只能由接口调用,不能声明为Public类型的.所以X的定义如下:
同样如果有更多的同名同参不同返回值的接口,也可以通过"接口名.函数名"的形式实现.
调用方式如下:
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|