我有类似下面的内容:
Item var;
根据用户输入,它将初始化为不同的类:
if (/*user input*/ == 1) {
var = new Item();
} else {
var = new Truck();
}
这些类定义为:
public class Truck extends Item {
public void someMethod();
public void exclusiveMethod();
}
public class Item {
public void someMethod();
}
Note Truck有一个独有的方法,item没有的exclusiveMethod().根据某些条件,将在var上调用一系列方法:
// will only return true if var was initialized as Truck
if (/*conditions*/) {
var.someMethod();
var.exclusiveMethod();
} else {
var.someMethod();
}
Netbeans弹出一个错误,即找不到exclusiveMethod(),因为它不在Item中.只有当var被初始化为Truck时,我才需要使用exclusiveMethod()的方法可见性.但是我有一些限制:Item var;必须在我的代码之前在其他逻辑之前,我不能创建一个接口,然后我在Item和Truck中实现.我也无法修改公共类Item {}.
我能做什么?