Java中的通用方法和继承

tgr*_*ger 0 java generics inheritance

让我们说C类和D类扩展了B类,扩展了A类

我在E类中有一个方法,我希望能够使用对象C或对象D.我知道A类提供了我需要的所有方法.我怎样才能编写一个让我传递对象C或对象D作为参数的方法?

我是否正确地认为我需要制作一个通用类?如果是的话有没有人有更接近我所需要的具体的例子是其中似乎只告诉我如何使用现有的集合类?

And*_*s_D 6

class A {
  public String hello(){return "hello";}
}
class B extends A{}
class C extends B{}
class D extends B{}
Run Code Online (Sandbox Code Playgroud)

该方法hello适用于所有子类B,C和D.

所以在E中,做一些像:

private void test() {
  System.out.println(hello(new A()));
  System.out.println(hello(new B()));
  System.out.println(hello(new C()));
  System.out.println(hello(new D()));
}

public String hello(A a) {
  return a.hello();
}
Run Code Online (Sandbox Code Playgroud)

你可以传递A,B,C或D的实例

BTW - 在这种情况下不需要泛型(据我所知)