我认为您的困惑在于C#属性与字段/变量。在C#中,即使在抽象类中,也无法定义抽象字段。但是,您可以定义抽象属性,因为它们是有效的方法(例如,编译为
get_TAG()和
set_TAG(...))。
正如某些人提醒的那样,即使在C#中,您也不应该在类中包含公共字段/变量。有几个答案暗示了我的建议,但并不清楚。您应该使用getTAG()将您的想法转换为JavaBean属性的Java。然后,您的子类将必须实现这一点(我还编写了一个具有表类的项目来执行此操作)。
因此,您可以像这样定义一个抽象类…
public abstract class AbstractTable { public abstract String getTag(); public abstract void init(); ...}然后,在任何具体的子类中,您都需要定义一个静态最终变量(常量),并从中返回它
getTag(),如下所示:
public class SalesTable extends AbstractTable { private static final String TABLE_NAME = "Sales"; public String getTag() { return TABLE_NAME; } public void init() { ... String tableName = getTag(); ... }}编辑 :
您不能覆盖继承的字段(在C#或Java中)。您也不能覆盖静态成员,无论它们是字段还是方法。因此,这也是最佳解决方案。我更改了上面的init方法示例,以显示该方法的用法-
再次将getXXX方法视为属性。



