下面的代码将方法“testmethod”传递给a的子类的实例化: 名字叫b
遗憾的是,此方法的签名接受超类a而不是子类b。
我不能改变那个签名。 因为被很多种类引用。
如何从test method (test method )访问var2变量,而不更改的签名? 这个变量是传递给testmethod的对象的一部分吗?
公共类测试5 {
publicstaticvoidmain (string args [ ] ) {
B b=new B (;
测试方法(b );
}
publicstaticvoidtestmethod{
system.out.println (intestmeth-' a2.getvar1); //WORKS
system.out.println (intestmeth-' a2.getvar2) ); //DOESNT WORK
}
}
class A {
int var1=2;
公共获取1 (
返回变量1;
}
}
class B extends A {
int var2=8;
公共获取2 () {
return var2;
}