gpt4 book ai didi

Java重写函数,其中参数之一在子类中是常量

转载 作者:行者123 更新时间:2023-12-02 08:40:54 27 4
gpt4 key购买 nike

我有一个基于键值对读取和写入数据的服务。该服务是通用的。

我想实现一个类似的类,它扩展了我描述的类,但在基类中,键是常量

问题是,如果我尝试重写读取和写入函数,它们都会包含关键参数,尽管它是 const。

在这种情况下我该如何实现和覆盖?是否可以或只能不继承?

我的BaseService.java

class BaseService {
private HashMap<String, String> storage = new HashMap<String, String>();

void write(String key, String value) {
storage.put(key, value);
}

String read(String key) {
return storage.get(key);
}
}

ChildService.java

class ChildService extends BaseService {
static final String KEY = 'const-key';
@override
void write(String value) {
storage.put(KEY, value);
}

@override
String read() {
return storage.get(KEY);
}
}

由于签名现在不同,因此无法覆盖这种方式。

最佳答案

尝试这样的事情:

public abstract class BaseService {
HashMap<String, String> storage = new HashMap<String, String>();

abstract String getKey();

void write(String key, String value) {
storage.put(key, value);
}

String read(String key) {
return storage.get(key);
}

String read() {
return storage.get(getKey());
}

void write(String value) {
storage.put(getKey(), value);
}

}

public class ChildService extends BaseService {

static final String KEY = "const-key";

@Override
String getKey() {
return KEY;
}
}

关于Java重写函数,其中参数之一在子类中是常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61397031/

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