如何从子抽象类访问方法

时间:2014-05-22 12:51:43

标签: java oop abstract

我有以下的hirarchy:

Interface s
Abstractclass1 implements s
Abstractclass2 extends Abstractclass1 
Abstractclass2中的

s / Abstractclass1中有一种无法识别的方法:method2 有一个测试代码生成一个新的s对象,我想在这个对象上使用method2如何访问它?

2 个答案:

答案 0 :(得分:4)

您不能在具有静态类型method2(或Abstractclass1)的对象上调用s

如果您有bark()(谁知道,在运行时可能是Animal),则无法致电Cat

那么,该怎么办?您可以将静态类型更改为Abstractclass2,也可以执行向下转换,例如:((Abstractclass2) yourObject).method2

答案 1 :(得分:0)

你必须对你的" S"的实例进行类型转换。到Abstractclass2。

e.g。

void myMethod(S myparam)
{
  if (myparam instanceof Abstractclass2)
  {
    ((Abstractclass2)myparam).method2();
  }
}