Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java接口双重继承_Java_Inheritance_Interface - Fatal编程技术网

Java接口双重继承

Java接口双重继承,java,inheritance,interface,Java,Inheritance,Interface,假设我有一个java接口: public Interface IEnergyNetwork { Voltage getVoltage(); Resistance getResistance(); Current getCurrent(); } 每个方法返回的结果都非常明显 现在想象一下,我有两个类实现了这个相同的接口,一个类是重要的类,另一个类只是一个虚拟的安全问题(如果我的程序出了什么问题,比如bug之类的) 虚拟类: public class DummyEne

假设我有一个java接口:

public Interface IEnergyNetwork {

    Voltage getVoltage();

    Resistance getResistance();

    Current getCurrent();
}
每个方法返回的结果都非常明显

现在想象一下,我有两个类实现了这个相同的接口,一个类是重要的类,另一个类只是一个虚拟的安全问题(如果我的程序出了什么问题,比如bug之类的)

虚拟类:

public class DummyEnergyNetwork implements IEnergyNetwork {

    @Override
    public Voltage getVoltage(){
    return null;
    }

    @Override
    public Resistance getResistance(){
    return null;
    }

    @Override
    public Current getCurrent(){
    return null;
    }

}
我将与之合作的班级:

public class EnergyNetwork implements IEnergyNetwork{
    @Override
    public Voltage getVoltage(){
    //work with the code that I need
    }

    @Override
    public Resistance getResistance(){
    //work with the code that I need
    }

    @Override
    public Current getCurrent(){
    //work with the code that I need
    }
}
现在,例如,如果我想从另一个类调用getCurrent()方法,请执行以下操作:

public class PowerGenerator {

    public void addPower(double power){
        IEnergyNetwork network = new DummyEnergyNetwork();
        double current = network.getCurrent().size(); //assuming that the type current has a method that returns its value in double
        //do the rest of the code
    }
}
我的疑问是,我将得到哪个返回:DummeyenergyNetwork类的空返回还是EnergyNetwork类的当前返回

顺便说一句,这是我在Github上看到的Minecraft mod Botania的一些代码的改编。如果您在理解我的示例时遇到困难,那么问题的根源就在SubTileFunctional()类下

我的疑问是我会得到哪种回报:来自 DummeyenergyNetwork类还是EnergyNetwork类中的当前类


由于引用
network
指向
dummeyenergynetwork
,因此将调用dummeyenergynetwork方法。

new dummeyenergynetwork();为什么你认为
EnergyNetwork
在任何方面都会涉及到这个问题?因为,在我所研究的代码中,类,在这个例子中是EnergyNetwork,如果是使代码工作所需的东西的类,而不是伪类。请重新表述。我不明白。在我正在研究的代码中,伪类返回null或空arrayList。另一个类是执行所需方法的类。但是,根据您刚才所说的,这些方法是从伪类调用的,这意味着调用的方法将是无用的(如果您仍然不理解,请检查我在问题中放入的类+相关类[该方法称为“linkPool()”))。您需要了解多态性。但是,在其他代码中,伪类的方法返回null或arrayList,另一个类返回必要的变量(如果你不明白我说的话,请参阅我在问题中输入的类和相关类)。
IEnergyNetwork network = new DummyEnergyNetwork();