这是我的代码:
public interface Baseinterface {}
abstract class Interface1 implements Baseinterface{}
abstract class Interface2 implements Baseinterface{}
public interface Classinterface {}
我想使用这段代码:
public class Myclass(Baseinterface interfaceversion) implements Classinterface{}
将接口实现的类型作为构造函数传递。 因此,当在这两个抽象类中定义函数时,我的实际类知道要使用哪一个。我是java的新手。 感谢。
答案 0 :(得分:1)
我可能误解了这个问题的性质,但这里有:
给定此代码,该代码描述了两个实现与接口定义的方法相同的抽象类:
interface BaseInterface {
void foo();
}
abstract class ITestA implements BaseInterface {
public void foo() {
System.out.print("A");
}
}
abstract class ITestB implements BaseInterface {
public void foo() {
System.out.print("B");
}
}
public class MyClass {
private BaseInterface enclosed;
MyClass(BaseInterface base) {
enclosed = base;
}
public void foo() {
enclosed.foo(); // call the implementation specific to the instance passed in by constructor
}
}
这可以称为:
public class Test {
void bar() {
// This may look weird cause we're defining an anonymous implementation of the abstract class, without adding any new implementation details
ITestA impl = new ITestA() {};
MyClass myClass = new MyClass(impl);
myClass.foo(); // prints "A"
}
}