Java 接口多继承

接口是”常量”和”方法”定义的集合。接口是一种特殊的抽象类。

java类是单继承的。classB extends classA
java接口可以多继承。Interface3 extends Interface0, Interface1, interface……

不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?因此多继承容易导致钻石危机(也称棱形问题)。但接口不存在这样的问题,因为接口全都是抽象方法,子类无论继承谁都需要复写该方法,所以接口可以继承多个接口。

比如说要读取一个配置文件,这个配置文件来源可以是本地的可以是网络的,
就可以声明个接口和两个实现类。

/** 
 * 配置文件接口 
 */  
public interface Config {  
    /** 
     * 获取配置文件 
     *  
     * @return 配置文件 
     */  
    Object getConfig();  
}  
/** 
 * 本地配置文件 
 */  
public class LocalConfig implements Config {  
    public Object getConfig() {  
        // 获取本地配置文件  
        return null;  
    }
}  
/** 
 * 远程配置文件 
 */  
public class RemoteConfig implements Config {  
    public Object getConfig() {  
        // 获取远程配置文件  
        return null;  
    }  
}  
/** 
 * 使用接口 
 */  
public class UseConfig {  
    private Config config;  
    public void user() {  

        // 在使用之前注入,在使用的时候无需关注  
        // 是本地文件还是远程文件  
        Object obj = config.getConfig();  
    }  
}  

注意:
1)一个类如果实现了一个接口,则要实现该接口的所有方法。
2)方法的名字、返回类型、参数必须与接口中完全一致。
3)因为接口的方法默认是public类型的,所以在实现的时候一定要用public来修饰(否则默认为protected类型,缩小了方法的使用范围)。
4)由于接口的多继承特性,在设计模式中,接口经常用来实现泛型、模板。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值