gpt4 book ai didi

Java扩展/抽象/实现问题

转载 作者:行者123 更新时间:2023-12-02 00:54:58 28 4
gpt4 key购买 nike

我有三个类(class)(A 类、B 类和 C 类)。

类 A 调用 B 的实例并运行 start()。

B类扩展了Thread,因此当调用start()时,run()方法中的任何内容都会被执行。

在run()线程中,有一个类C的实例。

有没有办法允许类 C 中的方法调用类 A 中的方法,而不实例化类 A 的新实例?

由于我无法将 A 类扩展到 B 类(因为“Thread”已经扩展),所以我不知道该怎么做。

很抱歉含糊其辞,但我的项目包含太多代码,而且太复杂,无法提供直接的代码示例。

谢谢!

最佳答案

所以你有

class A {
void run()
{
new B().start();
}
}

class B extends Thread {
public void run(){
C c = new C();
c.do something with A .. }
}

您可以传递调用者,这可能会变得很难看,因为您必须将 A 一直通过 B 传递到 C:

class A {
void run()
{
new B(this).start();
}
}

class B extends Thread {
public void run(A a){
C c = new C();
c.do something(a)..
}
}

或简化,特别是如果 B 和 C 没有其他理由:

class A {
public void run()
{
this.do something() ...
}
}

关于Java扩展/抽象/实现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1235054/

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