如何为抽象基类的任何派生类可以使用的方法声明参数类型?

问题描述 投票:-1回答:1

我有一个抽象的基类,例如A,它有几个派生类定义为:

public class B extends A implements Interface1 {
...
}

public class C extends A implements Interface2 {
...
}

public class D extends A implements Interface3 {
...
}

我想定义一个新方法func(),该方法可以采用BCD类的对象。如何声明此方法?我尝试过:

private void func(A obj) {
 //do something
 // call method common to B, C and D
}

但是这向我显示了IntelliJ中的错误,它说它期望使用A类型的对象,但改为使用B。声明func()的参数类型的正确方法是什么?

java inheritance
1个回答
0
投票

我已经将给定的代码扩展为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());
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.