Java 接口多继承

    xiaoxiao2026-04-08  2

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

    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)由于接口的多继承特性,在设计模式中,接口经常用来实现泛型、模板。

    转载请注明原文地址: https://ju.6miu.com/read-1308612.html
    最新回复(0)