gpt4 book ai didi

java - 用于扩展另一个类的类的最终 protected 静态类

转载 作者:行者123 更新时间:2023-12-01 18:50:27 25 4
gpt4 key购买 nike

我有一个记录类(class)。在这个 Record 类中,我有一个 save() 方法,它将数据保存到数据库中。我还有其他几个类扩展了这个 Record 类,例如 Person 类。在我的 Person 类中,我想定义 People 数据库表的数据库表名称和列。我想让 Person 的所有实例都引用这些最终静态属性。如何让扩展类 Record 知道该属性将存在于所有扩展类中?如何为基类知道存在的类定义静态属性?

这是接口(interface)的适当使用吗?

public class Record {
protected String table_name;
protected String[] table_columns;

private void save(){
//save data based on table_name and table_columns;
}
}

public class Person extends Record{
protected final static String table_name = "People";
protected final static String[] table_columns = {"_id","name"}
}

最佳答案

为什么需要static final

如果将Record抽象化,并将表名和表列更改为抽象方法,则需要在子类中实现它们(并且将确保Record他们的存在)。

我不确定为什么 Person 的实例需要访问此信息,但如果有必要的话,这仍然是可能的。

public abstract class Record {
protected abstract String getTableName();
protected abstract String[] getTableColumns();

private void save(){
//save data based on getTableName() and getTableColumns();
}
}

public class Person extends Record {
protected String getTableName() {
return "People";
}
protected String[] getTableColumns() {
return new String[] { "_id", "name" };
}
}

关于java - 用于扩展另一个类的类的最终 protected 静态类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16049888/

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