|
同一個包中,假定有2個基礎接口NetAddress(網絡地址)和PhysicalAddress(物理地址),并有一個子接口IPv4Address同時implements上述兩個接口,如下所示:
NetAddress(網絡地址)
public interface NetAddress {
byte[]ipv4=new byte[4];
publicvoid SetAddress(byte InitIpv4[]);
}
PhysicalAddress(物理地址)
public interface PhysicalAddress {
byte []mac=new byte[6];
public void SetAddress(byteInitMac[]);
}
IPv4Address
public class IPv4Address implementsNetAddress,PhysicalAddress{
public void SetAddress(byte InitAddress[])
{
//是給ipv4賦值還是給mac賦值呢?
}
}
由于NetAddress和PhysicalAddress都有同名的SetAddress,eclipse會默認IPv4Address中的SetAddress方法是對NetAddress中SetAddress實現,原因是兩個父接口的SetAddress不僅名稱相同,連參數類型(簽名)也相同,解決辦法只能在父接口中盡量減少這種方法沖突:
NetAddress(網絡地址)
public interface NetAddress {
byte[]ipv4=new byte[4];
publicvoid SetIpv4(byte InitIpv4[]);
}
PhysicalAddress(物理地址)
public interface PhysicalAddress {
byte []mac=new byte[6];
public void SetMac(byteInitMac[]);
}
IPv4Address
public class IPv4Address implementsNetAddress,PhysicalAddress{
public void SetIpv4(byte IPv4[])
{
//給IP地址賦值
}
publicvoid SetMac(byte Mac[]);
{
//給Mac地址賦值
}
}
|
|