【发布时间】:2011-01-23 04:23:55
【问题描述】:
我来自 c#,这很容易而且可能。
我有这个代码:
public abstract class clsAbstractTable {
public abstract String TAG;
public abstract void init();
}
但是 Eclipse 告诉我我使用了非法修饰符。
我有这门课:
public class clsContactGroups extends clsAbstractTable {
}
我想要以这种方式定义的变量和方法,让 Eclipse 提示我,我有未实现的抽象 变量 和方法。
如何定义我的抽象类,以便系统提示我实现抽象?
编辑 1
我将为不同的数据库表创建不同的类。每个类都应该有自己的 TABLENAME 变量,也不例外。每次创建扩展抽象类的新类时,我都必须确保这个变量是静态的。
然后在抽象类中我会有一个方法 eg:init();
如果在这个 init() 方法中我调用 TABLENAME,它应该从子类中获取值。
这样的事情也应该可以解决
String tablename=(clsAbstract)objItem.TABLENAME;
// where objItem can be any class that extended clsAbstract;
编辑 2
我想要在每个类中定义一个常量(静态),并在抽象中定义它的名称。
- 我在摘要中定义了变量 TABLENAME,但没有给出值。
- 我创建了一个 clsContactGroups,应该会提示我实现 TABLENAME,这是获取一些数据的地方。例如:TABLENAME="contactgroups";
- 我创建了第二个类 clsContacts,应该会提示我实现 TABLENAME,这是获取一些数据的地方。例如:TABLENAME="联系人";
等等……
【问题讨论】:
-
Java 中没有抽象变量之类的东西。抽象方法,是的。
-
我的示例中的 TAG 变量。我想被提示在其他类上实现它们。
-
如何提示我在所有类中定义一个 TAG 变量?
-
我看不出有什么理由不能使用声明为抽象的 getTableName() 之类的方法来完成。
-
对不起,但这在 C# 中也是不可能的。只有 instance methods(和 setter/getter)可以是抽象的。
标签: java class variables abstract