所以,让我们说我有一个java界面能量:
public Interface IEnergyNetwork {
Voltage getVoltage();
Resistance getResistance();
Current getCurrent();
}
每种方法返回的内容非常明显。
现在假设我有两个实现同一个接口的类,一个类是重要的类,另一个类只是一个虚拟安全事件(如果我的程序出现任何问题,比如bug或其他什么)。 / p>
虚拟课程:
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
}
}
我怀疑我将返回哪个:DummyEnergyNetwork类中的null值或EnergyNetwork类中的当前值?
顺便说一下,这是我在Minecraft mod Botania的Github上看到的一些代码的改编。如果您无法理解我的示例,我的问题的根源在SubTileFunctional(https://github.com/Vazkii/Botania/blob/master/src/main/java/vazkii/botania/api/subtile/SubTileFunctional.java)类下。
答案 0 :(得分:2)
我的疑问是我将返回哪个:来自的null DummyEnergyNetwork类或EnergyNetwork类的当前类?
IEnergyNetwork network = new DummyEnergyNetwork();
作为引用network
指向DummyEnergyNetwork
,因此将调用DummyEnergyNetwork方法。