【发布时间】:2012-05-16 16:26:38
【问题描述】:
代码:
ClassA extends ClassBase {
protected IntefaceA parA;
.... }
InterfaceA extends InterfaceBase
ClassBase {
protected IntefaceBase parB;
public method1() {
parB.someMethod();
}
代码:
ClassA testClass=new ClassA();
testClass.setParA(new InterfaceA {....}; );
testClass.method1();
我收到空指针异常,因为方法metho1 使用来自ClassBase 的类变量,method1 使用的是parB。是否可以让方法 1 使用 paraA? 如果没有,我需要将method1的所有代码从基类复制粘贴到后代。
谢谢。
【问题讨论】:
-
parA 是 parB 的类型,因为 InterfaceA 扩展了 InterfaceBase。所以使用后代类的变量应该没有问题......
-
是ClassA的对象。所以逻辑上将使用 ClassA 类的变量
标签: java inheritance methods field superclass