gpt4 book ai didi

java - Java中如何用接口(interface)替换抽象类?

转载 作者:行者123 更新时间:2023-12-01 23:45:15 25 4
gpt4 key购买 nike

我有一个抽象类Work,它有两个抽象方法(initwork)和一个具体方法(run) code>) 使用抽象方法。

class work
{
abstract static class Work<T> implements Runnable
{
T data;

abstract protected void init ();
abstract protected void work ();

public void run ()
{
init();
work();
System.out.println (data);
}
}

public static void main (String[] args)
{
Runnable hello = new Work<String>() {
protected void init () { data = "Hello $1!"; }
protected void work () { data = data.replace ("$1", "World"); }
};

(new Thread(hello)).start();
}
}

为了摆脱多重继承问题,我想将抽象类转换为接口(interface)。但在 Java 中,接口(interface)不能包含主体。那么抽象类转换成接口(interface)后,通用数据和方法应该放在哪里呢?

我担心,只要我想分享任何具体的东西,就不可能摆脱多重继承问题。这是正确的吗?

最佳答案

你可以这样做:

  1. 创建工作界面
  2. 创建 AbstractWork 类,该类是实现 Work 并包含通用代码的抽象类
  3. 创建扩展 AbstractWork 的实现类

这正是 JDK 中使用 List (接口(interface))、AbtractList (实现 List 的抽象类)和 LinkedListArrayList(扩展 AbstractList 的实现类)。

关于java - Java中如何用接口(interface)替换抽象类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17192149/

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