我有一个抽象的基类,例如A
,它有几个派生类定义为:
public class B extends A implements Interface1 {
...
}
public class C extends A implements Interface2 {
...
}
public class D extends A implements Interface3 {
...
}
我想定义一个新方法func()
,该方法可以采用B
,C
和D
类的对象。如何声明此方法?我尝试过:
private void func(A obj) {
//do something
// call method common to B, C and D
}
但是这向我显示了IntelliJ中的错误,它说它期望使用A
类型的对象,但改为使用B
。声明func()
的参数类型的正确方法是什么?
我已经将给定的代码扩展为Meal Ready to Eat。
为我工作。发问者的问题不存在于问题中。该项目可能只需要干净和完整的重建。
abstract class A { }
interface Interface1 { }
public class B extends A implements Interface1 {
// ...
}
class Code {
private void func(A obj) {
//do something
// call method common to B, C and D
}
public void code() {
func(new B());
}
}