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