sách gpt4 ai đã đi

Các vấn đề về mở rộng/trừu tượng hóa/triển khai Java

In lại 作者:行者123 更新时间:2023-12-02 00:54:58 28 4
mua khóa gpt4 Nike

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

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

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

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

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

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

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

Cảm ơn!

1 Câu trả lời

所以你有

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
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com