|
同一个包中,假定有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地址赋值
}
}
|
|