gpt4 book ai didi

java - 如何引用既扩展又实现的实例?

转载 作者:行者123 更新时间:2023-11-29 06:54:23 25 4
gpt4 key购买 nike

假设我有一个抽象类、一个扩展类和一个如下所示的接口(interface):

public abstract class SuperClass {
...
public void foo() {...}
...
}

public class SubClass extends SuperClass implements MyInterface {...}

public interface MyInterface {
public void bar();
}

请注意,我有一些 SuperClass 的子类实现了 MyInterface,但不是全部。还可以说,我有另一个带有这样的构造函数的类:

public class AnotherClass {
private SuperClass sc;
public AnotherClass(SuperClass superclass) {
sc = superclass;
}
...
}

我现在的问题是,我如何才能确保构造函数中的给定对象也实现了 MyInterface?我需要对象 sc 才能运行方法 foo()bar()。我怎样才能做到这一点?

最佳答案

您可以向层次结构中引入另一个类:

public class NonImplementingSubClass extends SuperClass {...}

public class ImplementingSubClass extends SuperClass implements MyInterface {...}

所有应该实现您的接口(interface)的子类将扩展 ImplementingSubClass

public class SubClass extends ImplementingSubClass {...}

public class AnotherClass {
private ImplementingSubClass sc;
public AnotherClass(ImplementingSubClass superclass) {
sc = superclass;
}
...
}

关于java - 如何引用既扩展又实现的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37547437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com